From 6fee55dcff976f3eeae5879fe91d2f27780d0da4 Mon Sep 17 00:00:00 2001 From: tobi Date: Wed, 15 Oct 2025 18:57:57 +0200 Subject: [chore] Rationalize HTTP return codes for fedi endpoints, other tidying up (#4503) # Description > If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements. > > If this is a documentation change, please briefly describe what you've changed and why. This pull request does some refactoring of the fedi API endpoints and processing functions, and the authenticate + pub key deref functions, to try to return fewer silly HTTP codes like 410 Gone (when a *remote* account is gone, not a local one), and 500 errors where something isn't really an error. Also does some general tidying up and renaming for consistency. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have not leveraged AI to create the proposed changes. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [x] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4503 Co-authored-by: tobi Co-committed-by: tobi --- internal/api/activitypub/users/user.go | 42 ++++++++-------------------------- 1 file changed, 10 insertions(+), 32 deletions(-) (limited to 'internal/api/activitypub/users/user.go') diff --git a/internal/api/activitypub/users/user.go b/internal/api/activitypub/users/user.go index 7fb5f6aa5..e55608fe2 100644 --- a/internal/api/activitypub/users/user.go +++ b/internal/api/activitypub/users/user.go @@ -27,39 +27,17 @@ import ( ) const ( - // UsernameKey is for account usernames. - UsernameKey = "username" - // StatusIDKey is for status IDs - StatusIDKey = "status" - // OnlyOtherAccountsKey is for filtering status responses. - OnlyOtherAccountsKey = "only_other_accounts" - // MinIDKey is for filtering status responses. - MinIDKey = "min_id" - // MaxIDKey is for filtering status responses. - MaxIDKey = "max_id" - // PageKey is for filtering status responses. - PageKey = "page" - - // BasePath is the base path for serving AP 'users' requests, minus the 'users' prefix. - BasePath = "/:" + UsernameKey - // InboxPath is for serving POST requests to a user's inbox with the given username key. - InboxPath = BasePath + "/" + uris.InboxPath - // OutboxPath is for serving GET requests to a user's outbox with the given username key. - OutboxPath = BasePath + "/" + uris.OutboxPath - // FollowersPath is for serving GET request's to a user's followers list, with the given username key. - FollowersPath = BasePath + "/" + uris.FollowersPath - // FollowingPath is for serving GET request's to a user's following list, with the given username key. - FollowingPath = BasePath + "/" + uris.FollowingPath - // FeaturedCollectionPath is for serving GET requests to a user's list of featured (pinned) statuses. + OnlyOtherAccountsKey = "only_other_accounts" + BasePath = "/:" + apiutil.UsernameKey + InboxPath = BasePath + "/" + uris.InboxPath + OutboxPath = BasePath + "/" + uris.OutboxPath + FollowersPath = BasePath + "/" + uris.FollowersPath + FollowingPath = BasePath + "/" + uris.FollowingPath FeaturedCollectionPath = BasePath + "/" + uris.CollectionsPath + "/" + uris.FeaturedPath - // StatusPath is for serving GET requests to a particular status by a user, with the given username key and status ID - StatusPath = BasePath + "/" + uris.StatusesPath + "/:" + StatusIDKey - // StatusRepliesPath is for serving the replies collection of a status. - StatusRepliesPath = StatusPath + "/replies" - // AcceptPath is for serving accepts of a status. - AcceptPath = BasePath + "/" + uris.AcceptsPath + "/:" + apiutil.IDKey - // AuthorizationsPath is for serving authorizations of an interaction. - AuthorizationsPath = BasePath + "/" + uris.AuthorizationsPath + "/:" + apiutil.IDKey + StatusPath = BasePath + "/" + uris.StatusesPath + "/:" + apiutil.IDKey + StatusRepliesPath = StatusPath + "/replies" + AcceptPath = BasePath + "/" + uris.AcceptsPath + "/:" + apiutil.IDKey + AuthorizationsPath = BasePath + "/" + uris.AuthorizationsPath + "/:" + apiutil.IDKey ) type Module struct { -- cgit v1.2.3