FIX: Generate webhook payloads before destroy events (#6325)

This commit is contained in:
Vinoth Kannan
2018-10-05 14:23:59 +05:30
committed by Guo Xiang Tan
parent 5b630f3188
commit 8430ea927e
11 changed files with 90 additions and 29 deletions

View File

@@ -45,6 +45,14 @@ class PostDestroyer
end
def destroy
payload = WebHook.generate_payload(:post, @post)
topic = @post.topic
if @post.is_first_post? && topic
topic_view = TopicView.new(topic.id, Discourse.system_user)
topic_payload = WebHook.generate_payload(:topic, topic_view, WebHookTopicViewSerializer)
end
delete_removed_posts_after = @opts[:delete_removed_posts_after] || SiteSetting.delete_removed_posts_after
if @user.staff? || delete_removed_posts_after < 1
@@ -53,9 +61,19 @@ class PostDestroyer
mark_for_deletion(delete_removed_posts_after)
end
DiscourseEvent.trigger(:post_destroyed, @post, @opts, @user)
WebHook.enqueue_hooks(:post, :post_destroyed,
id: @post.id,
category_id: @post&.topic&.category_id,
payload: payload
)
if @post.is_first_post? && @post.topic
DiscourseEvent.trigger(:topic_destroyed, @post.topic, @user)
WebHook.enqueue_hooks(:topic, :topic_destroyed,
id: topic.id,
category_id: topic&.category_id,
payload: topic_payload
)
end
end