summaryrefslogtreecommitdiff
path: root/internal/typeutils
diff options
context:
space:
mode:
Diffstat (limited to 'internal/typeutils')
-rw-r--r--internal/typeutils/converter.go2
-rw-r--r--internal/typeutils/internaltofrontend.go20
2 files changed, 22 insertions, 0 deletions
diff --git a/internal/typeutils/converter.go b/internal/typeutils/converter.go
index 80a922635..30c1c7d2c 100644
--- a/internal/typeutils/converter.go
+++ b/internal/typeutils/converter.go
@@ -76,6 +76,8 @@ type TypeConverter interface {
RelationshipToMasto(r *gtsmodel.Relationship) (*model.Relationship, error)
// NotificationToMasto converts a gts notification into a mastodon notification
NotificationToMasto(n *gtsmodel.Notification) (*model.Notification, error)
+ // DomainBlockTomasto converts a gts model domin block into a mastodon domain block, for serving at /api/v1/admin/domain_blocks
+ DomainBlockToMasto(b *gtsmodel.DomainBlock, export bool) (*model.DomainBlock, error)
/*
FRONTEND (mastodon) MODEL TO INTERNAL (gts) MODEL
diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go
index c2f00c77d..61c11b8ef 100644
--- a/internal/typeutils/internaltofrontend.go
+++ b/internal/typeutils/internaltofrontend.go
@@ -644,3 +644,23 @@ func (c *converter) NotificationToMasto(n *gtsmodel.Notification) (*model.Notifi
Status: mastoStatus,
}, nil
}
+
+func (c *converter) DomainBlockToMasto(b *gtsmodel.DomainBlock, export bool) (*model.DomainBlock, error) {
+
+ domainBlock := &model.DomainBlock{
+ Domain: b.Domain,
+ PublicComment: b.PublicComment,
+ }
+
+ // if we're exporting a domain block, return it with minimal information attached
+ if !export {
+ domainBlock.ID = b.ID
+ domainBlock.Obfuscate = b.Obfuscate
+ domainBlock.PrivateComment = b.PrivateComment
+ domainBlock.SubscriptionID = b.SubscriptionID
+ domainBlock.CreatedBy = b.CreatedByAccountID
+ domainBlock.CreatedAt = b.CreatedAt.Format(time.RFC3339)
+ }
+
+ return domainBlock, nil
+}