summaryrefslogtreecommitdiff
path: root/internal/typeutils/internaltoas.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2022-09-23 21:27:35 +0200
committerLibravatar GitHub <noreply@github.com>2022-09-23 20:27:35 +0100
commit69a193dae543641a2db6823fa6493c02f56fafbd (patch)
treec1a0c71d64642db12a17c6770642c3e0af859960 /internal/typeutils/internaltoas.go
parent[docs] NLnet follow up questions (#846) (diff)
downloadgotosocial-69a193dae543641a2db6823fa6493c02f56fafbd.tar.xz
[feature] Allow delivery to sharedInboxes where possible (#847)
* update Activity * add instance-deliver-to-shared-inboxes setting * update activity version again * add SharedInboxURI field to accounts * serdes for endpoints/sharedInbox * deliver to sharedInbox if one is available * update tests * only assign shared inbox if shared domain * look for shared inbox if currently nil * go fmt * finger to get params.RemoteAccountID if necessary * make comments clearer * compare dns more consistently
Diffstat (limited to 'internal/typeutils/internaltoas.go')
-rw-r--r--internal/typeutils/internaltoas.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/typeutils/internaltoas.go b/internal/typeutils/internaltoas.go
index 6d8a22cab..a678a970f 100644
--- a/internal/typeutils/internaltoas.go
+++ b/internal/typeutils/internaltoas.go
@@ -85,6 +85,21 @@ func (c *converter) AccountToAS(ctx context.Context, a *gtsmodel.Account) (vocab
inboxProp.SetIRI(inboxURI)
person.SetActivityStreamsInbox(inboxProp)
+ // shared inbox -- only add this if we know for sure it has one
+ if a.SharedInboxURI != nil && *a.SharedInboxURI != "" {
+ sharedInboxURI, err := url.Parse(*a.SharedInboxURI)
+ if err != nil {
+ return nil, err
+ }
+ endpointsProp := streams.NewActivityStreamsEndpointsProperty()
+ endpoints := streams.NewActivityStreamsEndpoints()
+ sharedInboxProp := streams.NewActivityStreamsSharedInboxProperty()
+ sharedInboxProp.SetIRI(sharedInboxURI)
+ endpoints.SetActivityStreamsSharedInbox(sharedInboxProp)
+ endpointsProp.AppendActivityStreamsEndpoints(endpoints)
+ person.SetActivityStreamsEndpoints(endpointsProp)
+ }
+
// outbox
// the activitypub outbox of this user for serving messages
outboxURI, err := url.Parse(a.OutboxURI)