summaryrefslogtreecommitdiff
path: root/internal/db/domain.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2025-01-05 13:20:33 +0100
committerLibravatar GitHub <noreply@github.com>2025-01-05 13:20:33 +0100
commite9bb7ddd3aa11da5c48a75c4a600f8fe5cc1c990 (patch)
treea2897775112a821aa093b6e2686044814912001f /internal/db/domain.go
parent[chore] Update robots.txt with more AI bots (#3634) (diff)
downloadgotosocial-e9bb7ddd3aa11da5c48a75c4a600f8fe5cc1c990.tar.xz
[feature] Create/update/remove domain permission subscriptions (#3623)
* [feature] Create/update/remove domain permission subscriptions * lint * envparsing * remove errant fmt.Println * create drafts, subs, exclude, from snapshot models * name etag column correctly * remove count column * lint
Diffstat (limited to 'internal/db/domain.go')
-rw-r--r--internal/db/domain.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/internal/db/domain.go b/internal/db/domain.go
index f4d05ad1d..643538e7e 100644
--- a/internal/db/domain.go
+++ b/internal/db/domain.go
@@ -132,4 +132,44 @@ type Domain interface {
// IsDomainPermissionExcluded returns true if the given domain matches in the list of excluded domains.
IsDomainPermissionExcluded(ctx context.Context, domain string) (bool, error)
+
+ /*
+ Domain permission subscription stuff.
+ */
+
+ // GetDomainPermissionSubscriptionByID gets one DomainPermissionSubscription with the given ID.
+ GetDomainPermissionSubscriptionByID(ctx context.Context, id string) (*gtsmodel.DomainPermissionSubscription, error)
+
+ // GetDomainPermissionSubscriptions returns a page of
+ // DomainPermissionSubscriptions using the given parameters.
+ GetDomainPermissionSubscriptions(
+ ctx context.Context,
+ permType gtsmodel.DomainPermissionType,
+ page *paging.Page,
+ ) ([]*gtsmodel.DomainPermissionSubscription, error)
+
+ // GetDomainPermissionSubscriptionsByPriority returns *all* domain permission
+ // subscriptions of the given permission type, sorted by priority descending.
+ GetDomainPermissionSubscriptionsByPriority(
+ ctx context.Context,
+ permType gtsmodel.DomainPermissionType,
+ ) ([]*gtsmodel.DomainPermissionSubscription, error)
+
+ // PutDomainPermissionSubscription stores one DomainPermissionSubscription.
+ PutDomainPermissionSubscription(ctx context.Context, permSub *gtsmodel.DomainPermissionSubscription) error
+
+ // UpdateDomainPermissionSubscription updates the provided
+ // columns of one DomainPermissionSubscription.
+ UpdateDomainPermissionSubscription(
+ ctx context.Context,
+ permSub *gtsmodel.DomainPermissionSubscription,
+ columns ...string,
+ ) error
+
+ // DeleteDomainPermissionSubscription deletes one DomainPermissionSubscription with the given id.
+ DeleteDomainPermissionSubscription(ctx context.Context, id string) error
+
+ // CountDomainPermissionSubscriptionPerms counts the number of permissions
+ // currently managed by the domain permission subscription of the given ID.
+ CountDomainPermissionSubscriptionPerms(ctx context.Context, id string) (int, error)
}