diff --git a/app/models/webhook.rb b/app/models/webhook.rb index 304b2b1f184..d8994cfaa80 100644 --- a/app/models/webhook.rb +++ b/app/models/webhook.rb @@ -23,6 +23,12 @@ class Webhook < ApplicationRecord report.updated status.created status.updated + block.created + block.removed + follow.created + follow.removed + mute.created + mute.removed ).freeze attr_writer :current_account @@ -62,7 +68,7 @@ class Webhook < ApplicationRecord :manage_users when 'report.created', 'report.updated' :manage_reports - when 'status.created', 'status.updated' + when 'status.created', 'status.updated', 'block.created', 'block.removed', 'follow.created', 'follow.removed', 'mute.created', 'mute.removed' # TODO: find the correct permission :view_devops end end diff --git a/app/services/block_service.rb b/app/services/block_service.rb index 266a0f4b9d0..b0e7ad36187 100644 --- a/app/services/block_service.rb +++ b/app/services/block_service.rb @@ -12,6 +12,8 @@ class BlockService < BaseService block = account.block!(target_account) + trigger_webhooks block.id + BlockWorker.perform_async(account.id, target_account.id) create_notification(block) if !target_account.local? && target_account.activitypub? block @@ -26,4 +28,8 @@ class BlockService < BaseService def build_json(block) Oj.dump(serialize_payload(block, ActivityPub::BlockSerializer)) end + + def trigger_webhooks(block_id) + TriggerWebhookWorker.perform_async('block.created', 'Block', block_id) + end end