discourse/app/models/concerns/has_destroyed_web_hook.rb
Krzysztof Kotlarek c468110929
FEATURE: granular webhooks (#23070)
Before this change, webhooks could be only configured for specific groups like for example, all topic events.

We would like to have more granular control like for example topic_created or topic_destroyed.

Test are failing because plugins changed has to be merged as well:
discourse/discourse-assign#498
discourse/discourse-solved#248
discourse/discourse-topic-voting#159
2023-10-09 03:35:31 +00:00

20 lines
482 B
Ruby

# frozen_string_literal: true
module HasDestroyedWebHook
extend ActiveSupport::Concern
included { around_destroy :enqueue_destroyed_web_hook }
def enqueue_destroyed_web_hook
type = self.class.name.underscore.to_sym
if WebHook.active_web_hooks("#{type}_destroyed").exists?
payload = WebHook.generate_payload(type, self)
yield
WebHook.enqueue_hooks(type, "#{type}_destroyed".to_sym, id: id, payload: payload)
else
yield
end
end
end