summaryrefslogtreecommitdiff
path: root/internal/api/client/admin/domainpermission.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/api/client/admin/domainpermission.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/api/client/admin/domainpermission.go')
-rw-r--r--internal/api/client/admin/domainpermission.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/internal/api/client/admin/domainpermission.go b/internal/api/client/admin/domainpermission.go
index 90c0eb4c0..5138be898 100644
--- a/internal/api/client/admin/domainpermission.go
+++ b/internal/api/client/admin/domainpermission.go
@@ -302,3 +302,45 @@ func (m *Module) getDomainPermissions(
apiutil.JSON(c, http.StatusOK, domainPerm)
}
+
+// parseDomainPermissionType is a util function to parse i
+// to a DomainPermissionType, or return a suitable error.
+func parseDomainPermissionType(i string) (
+ permType gtsmodel.DomainPermissionType,
+ errWithCode gtserror.WithCode,
+) {
+ if i == "" {
+ const errText = "permission_type not set, must be one of block or allow"
+ errWithCode = gtserror.NewErrorBadRequest(errors.New(errText), errText)
+ return
+ }
+
+ permType = gtsmodel.ParseDomainPermissionType(i)
+ if permType == gtsmodel.DomainPermissionUnknown {
+ var errText = fmt.Sprintf("permission_type %s not recognized, must be one of block or allow", i)
+ errWithCode = gtserror.NewErrorBadRequest(errors.New(errText), errText)
+ }
+
+ return
+}
+
+// parseDomainPermSubContentType is a util function to parse i
+// to a DomainPermSubContentType, or return a suitable error.
+func parseDomainPermSubContentType(i string) (
+ contentType gtsmodel.DomainPermSubContentType,
+ errWithCode gtserror.WithCode,
+) {
+ if i == "" {
+ const errText = "content_type not set, must be one of text/csv, text/plain or application/json"
+ errWithCode = gtserror.NewErrorBadRequest(errors.New(errText), errText)
+ return
+ }
+
+ contentType = gtsmodel.NewDomainPermSubContentType(i)
+ if contentType == gtsmodel.DomainPermSubContentTypeUnknown {
+ var errText = fmt.Sprintf("content_type %s not recognized, must be one of text/csv, text/plain or application/json", i)
+ errWithCode = gtserror.NewErrorBadRequest(errors.New(errText), errText)
+ }
+
+ return
+}