mirror of
https://github.com/discourse/discourse.git
synced 2024-12-29 04:23:47 +08:00
c468110929
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
20 lines
482 B
Ruby
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
|