diff options
author | ThibG <thib@sitedethib.com> | 2020-10-22 22:38:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-22 22:38:11 +0200 |
commit | 36e5c9d45be0e94216b5b92ea8749a00bb68e0e3 (patch) | |
tree | 3f5e2b47d242c4044f0cd69433501834399879d5 /app/controllers/activitypub/followers_synchronizations_controller.rb | |
parent | 29870d2be6c0e78132416b5561aba20d6ca3c746 (diff) | |
parent | 5c60f7eaedbc2dc6184f8b2a4d99f58fdbd5b26b (diff) |
Merge pull request #1441 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/controllers/activitypub/followers_synchronizations_controller.rb')
-rw-r--r-- | app/controllers/activitypub/followers_synchronizations_controller.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app/controllers/activitypub/followers_synchronizations_controller.rb b/app/controllers/activitypub/followers_synchronizations_controller.rb new file mode 100644 index 000000000..525031105 --- /dev/null +++ b/app/controllers/activitypub/followers_synchronizations_controller.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +class ActivityPub::FollowersSynchronizationsController < ActivityPub::BaseController + include SignatureVerification + include AccountOwnedConcern + + before_action :require_signature! + before_action :set_items + before_action :set_cache_headers + + def show + expires_in 0, public: false + render json: collection_presenter, + serializer: ActivityPub::CollectionSerializer, + adapter: ActivityPub::Adapter, + content_type: 'application/activity+json' + end + + private + + def uri_prefix + signed_request_account.uri[/http(s?):\/\/[^\/]+\//] + end + + def set_items + @items = @account.followers.where(Account.arel_table[:uri].matches(uri_prefix + '%', false, true)).pluck(:uri) + end + + def collection_presenter + ActivityPub::CollectionPresenter.new( + id: account_followers_synchronization_url(@account), + type: :ordered, + items: @items + ) + end +end |