diff options
author | 2024-07-26 12:04:28 +0200 | |
---|---|---|
committer | 2024-07-26 12:04:28 +0200 | |
commit | 8ab2b19a946251f258446d22f420d401f61d22f6 (patch) | |
tree | 39fb674f135fd1cfcf4de5b319913f0d0c17d11a /internal/transport/dereference.go | |
parent | [docs] Add separate migration section + instructions for moving to GtS and no... (diff) | |
download | gotosocial-8ab2b19a946251f258446d22f420d401f61d22f6.tar.xz |
[feature] Federate interaction policies + Accepts; enforce policies (#3138)
* [feature] Federate interaction policies + Accepts; enforce policies
* use Acceptable type
* fix index
* remove appendIRIStrs
* add GetAccept federatingdb function
* lock on object IRI
Diffstat (limited to 'internal/transport/dereference.go')
-rw-r--r-- | internal/transport/dereference.go | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/internal/transport/dereference.go b/internal/transport/dereference.go index 952791f70..8cc1f2103 100644 --- a/internal/transport/dereference.go +++ b/internal/transport/dereference.go @@ -29,17 +29,26 @@ import ( ) func (t *transport) Dereference(ctx context.Context, iri *url.URL) (*http.Response, error) { - // if the request is to us, we can shortcut for certain URIs rather than going through - // the normal request flow, thereby saving time and energy + // If the request is to us, we can shortcut for + // certain URIs rather than going through the normal + // request flow, thereby saving time and energy. if iri.Host == config.GetHost() { - if uris.IsFollowersPath(iri) { - // the request is for followers of one of our accounts, which we can shortcut + switch { + + case uris.IsFollowersPath(iri): + // The request is for followers of one of + // our accounts, which we can shortcut. return t.controller.dereferenceLocalFollowers(ctx, iri) - } - if uris.IsUserPath(iri) { - // the request is for one of our accounts, which we can shortcut + case uris.IsUserPath(iri): + // The request is for one of our + // accounts, which we can shortcut. return t.controller.dereferenceLocalUser(ctx, iri) + + case uris.IsAcceptsPath(iri): + // The request is for an Accept on + // our instance, which we can shortcut. + return t.controller.dereferenceLocalAccept(ctx, iri) } } |