diff options
Diffstat (limited to 'internal/typeutils')
-rw-r--r-- | internal/typeutils/converter.go | 2 | ||||
-rw-r--r-- | internal/typeutils/internaltofrontend.go | 20 |
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 +} |