domain.go (2117B)
1 // GoToSocial 2 // Copyright (C) GoToSocial Authors admin@gotosocial.org 3 // SPDX-License-Identifier: AGPL-3.0-or-later 4 // 5 // This program is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU Affero General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU Affero General Public License for more details. 14 // 15 // You should have received a copy of the GNU Affero General Public License 16 // along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 package db 19 20 import ( 21 "context" 22 "net/url" 23 24 "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" 25 ) 26 27 // Domain contains DB functions related to domains and domain blocks. 28 type Domain interface { 29 // CreateDomainBlock ... 30 CreateDomainBlock(ctx context.Context, block *gtsmodel.DomainBlock) Error 31 32 // GetDomainBlock ... 33 GetDomainBlock(ctx context.Context, domain string) (*gtsmodel.DomainBlock, Error) 34 35 // DeleteDomainBlock ... 36 DeleteDomainBlock(ctx context.Context, domain string) Error 37 38 // IsDomainBlocked checks if an instance-level domain block exists for the given domain string (eg., `example.org`). 39 IsDomainBlocked(ctx context.Context, domain string) (bool, Error) 40 41 // AreDomainsBlocked checks if an instance-level domain block exists for any of the given domains strings, and returns true if even one is found. 42 AreDomainsBlocked(ctx context.Context, domains []string) (bool, Error) 43 44 // IsURIBlocked checks if an instance-level domain block exists for the `host` in the given URI (eg., `https://example.org/users/whatever`). 45 IsURIBlocked(ctx context.Context, uri *url.URL) (bool, Error) 46 47 // AreURIsBlocked checks if an instance-level domain block exists for any `host` in the given URI slice, and returns true if even one is found. 48 AreURIsBlocked(ctx context.Context, uris []*url.URL) (bool, Error) 49 }