summaryrefslogtreecommitdiff
path: root/internal/typeutils/internaltoas.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-10-08 10:51:13 +0200
committerLibravatar GitHub <noreply@github.com>2024-10-08 08:51:13 +0000
commit1e421cb912a9bc8dc564b814984bcdad4a597ada (patch)
treeb62e67266b59c0952aed0aba93dcd1485777136a /internal/typeutils/internaltoas.go
parent[chore]: Bump golang.org/x/image from 0.20.0 to 0.21.0 (#3399) (diff)
downloadgotosocial-1e421cb912a9bc8dc564b814984bcdad4a597ada.tar.xz
[feature] Distribute + ingest Accepts to followers (#3404)
Diffstat (limited to 'internal/typeutils/internaltoas.go')
-rw-r--r--internal/typeutils/internaltoas.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/internal/typeutils/internaltoas.go b/internal/typeutils/internaltoas.go
index d317d6f39..d9d18e1c7 100644
--- a/internal/typeutils/internaltoas.go
+++ b/internal/typeutils/internaltoas.go
@@ -1988,6 +1988,16 @@ func (c *Converter) InteractionReqToASAccept(
return nil, gtserror.Newf("invalid interacting account uri: %w", err)
}
+ publicIRI, err := url.Parse(pub.PublicActivityPubIRI)
+ if err != nil {
+ return nil, gtserror.Newf("invalid public uri: %w", err)
+ }
+
+ followersIRI, err := url.Parse(req.TargetAccount.FollowersURI)
+ if err != nil {
+ return nil, gtserror.Newf("invalid followers uri: %w", err)
+ }
+
// Set id to the URI of
// interaction request.
ap.SetJSONLDId(accept, acceptID)
@@ -2003,6 +2013,9 @@ func (c *Converter) InteractionReqToASAccept(
// of interaction URI.
ap.AppendTo(accept, toIRI)
+ // Cc to the actor's followers, and to Public.
+ ap.AppendCc(accept, publicIRI, followersIRI)
+
return accept, nil
}
@@ -2034,6 +2047,16 @@ func (c *Converter) InteractionReqToASReject(
return nil, gtserror.Newf("invalid interacting account uri: %w", err)
}
+ publicIRI, err := url.Parse(pub.PublicActivityPubIRI)
+ if err != nil {
+ return nil, gtserror.Newf("invalid public uri: %w", err)
+ }
+
+ followersIRI, err := url.Parse(req.TargetAccount.FollowersURI)
+ if err != nil {
+ return nil, gtserror.Newf("invalid followers uri: %w", err)
+ }
+
// Set id to the URI of
// interaction request.
ap.SetJSONLDId(reject, rejectID)
@@ -2049,5 +2072,8 @@ func (c *Converter) InteractionReqToASReject(
// of interaction URI.
ap.AppendTo(reject, toIRI)
+ // Cc to the actor's followers, and to Public.
+ ap.AppendCc(reject, publicIRI, followersIRI)
+
return reject, nil
}