From 9378c65396416ac39e46c9e2a7c2eac9d5cf7915 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 7 Aug 2023 23:59:10 -0600 Subject: [PATCH] Add AccountMigration ActivityPub support --- .../ActivityPub/ProfileTransformer.php | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/app/Transformer/ActivityPub/ProfileTransformer.php b/app/Transformer/ActivityPub/ProfileTransformer.php index 29f53425c..1df7b6100 100644 --- a/app/Transformer/ActivityPub/ProfileTransformer.php +++ b/app/Transformer/ActivityPub/ProfileTransformer.php @@ -4,17 +4,26 @@ namespace App\Transformer\ActivityPub; use App\Profile; use League\Fractal; +use App\Services\AccountService; class ProfileTransformer extends Fractal\TransformerAbstract { public function transform(Profile $profile) { - return [ + $res = [ '@context' => [ 'https://w3id.org/security/v1', 'https://www.w3.org/ns/activitystreams', [ 'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers', + 'alsoKnownAs' => [ + '@id' => 'as:alsoKnownAs', + '@type' => '@id' + ], + 'movedTo' => [ + '@id' => 'as:movedTo', + '@type' => '@id' + ] ], ], 'id' => $profile->permalink(), @@ -42,5 +51,15 @@ class ProfileTransformer extends Fractal\TransformerAbstract 'sharedInbox' => config('app.url') . '/f/inbox' ] ]; + + if($profile->aliases->count()) { + $res['alsoKnownAs'] = $profile->aliases->map(fn($alias) => $alias->uri); + } + + if($profile->moved_to_profile_id) { + $res['movedTo'] = AccountService::get($profile->moved_to_profile_id)['url']; + } + + return $res; } }