From ab2d063fcb04f241a3147c843a021491f5fc0a55 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 13 Mar 2024 13:53:29 +0100 Subject: [feature] Process outgoing Move from clientAPI (#2750) * prevent moved accounts from taking create-type actions * update move logic * federate move out * indicate on web profile when an account has moved * [docs] Add migration docs section * lock while checking + setting move state * use redirectFollowers func for clientAPI as well * comment typo * linter? i barely know 'er! * Update internal/uris/uri.go Co-authored-by: Daenney * add a couple tests for move * fix little mistake exposed by tests (thanks tests) * ensure Move marked as successful * attach shared util funcs to struct * lock whole account when doing move * move moving check to after error check * replace repeated text with error func * linterrrrrr!!!! * catch self follow case --------- Co-authored-by: Daenney --- internal/uris/uri.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'internal/uris/uri.go') diff --git a/internal/uris/uri.go b/internal/uris/uri.go index d12e24fea..335461d84 100644 --- a/internal/uris/uri.go +++ b/internal/uris/uri.go @@ -40,6 +40,7 @@ const ( FollowPath = "follow" // FollowPath used to generate the URI for an individual follow or follow request UpdatePath = "updates" // UpdatePath is used to generate the URI for an account update BlocksPath = "blocks" // BlocksPath is used to generate the URI for a block + MovesPath = "moves" // MovesPath is used to generate the URI for a move ReportsPath = "reports" // ReportsPath is used to generate the URI for a report/flag ConfirmEmailPath = "confirm_email" // ConfirmEmailPath is used to generate the URI for an email confirmation link FileserverPath = "fileserver" // FileserverPath is a path component for serving attachments + media @@ -108,6 +109,14 @@ func GenerateURIForBlock(username string, thisBlockID string) string { return fmt.Sprintf("%s://%s/%s/%s/%s/%s", protocol, host, UsersPath, username, BlocksPath, thisBlockID) } +// GenerateURIForMove returns the AP URI for a new Move activity -- something like: +// https://example.org/users/whatever_user/moves/01F7XTH1QGBAPMGF49WJZ91XGC +func GenerateURIForMove(username string, thisMoveID string) string { + protocol := config.GetProtocol() + host := config.GetHost() + return fmt.Sprintf("%s://%s/%s/%s/%s/%s", protocol, host, UsersPath, username, MovesPath, thisMoveID) +} + // GenerateURIForReport returns the API URI for a new Flag activity -- something like: // https://example.org/reports/01GP3AWY4CRDVRNZKW0TEAMB5R // -- cgit v1.2.3