From 840bea3c517a3c36e1e53040e00a21ab89c31ac2 Mon Sep 17 00:00:00 2001 From: Renato Atilio Date: Fri, 11 Aug 2023 13:42:28 -0300 Subject: [PATCH] FEATURE: add topic voting webhook event type (#23072) * FEATURE: add topic upvote webhook event type * DEV: use a generic event type name for other actions in the same plugin --- app/models/web_hook_event_type.rb | 4 ++++ db/fixtures/007_web_hook_event_types.rb | 5 +++++ spec/models/web_hook_spec.rb | 12 ++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/models/web_hook_event_type.rb b/app/models/web_hook_event_type.rb index df3274802b4..818b4353bc8 100644 --- a/app/models/web_hook_event_type.rb +++ b/app/models/web_hook_event_type.rb @@ -15,6 +15,7 @@ class WebHookEventType < ActiveRecord::Base GROUP_USER = 14 LIKE = 15 USER_PROMOTED = 16 + TOPIC_VOTING = 17 has_and_belongs_to_many :web_hooks @@ -30,6 +31,9 @@ class WebHookEventType < ActiveRecord::Base unless defined?(SiteSetting.assign_enabled) && SiteSetting.assign_enabled ids_to_exclude << ASSIGN end + unless defined?(SiteSetting.voting_enabled) && SiteSetting.voting_enabled + ids_to_exclude << TOPIC_VOTING + end self.where.not(id: ids_to_exclude) end diff --git a/db/fixtures/007_web_hook_event_types.rb b/db/fixtures/007_web_hook_event_types.rb index 7990d1b16ea..3bf745381c7 100644 --- a/db/fixtures/007_web_hook_event_types.rb +++ b/db/fixtures/007_web_hook_event_types.rb @@ -69,3 +69,8 @@ WebHookEventType.seed do |b| b.id = WebHookEventType::USER_PROMOTED b.name = "user_promoted" end + +WebHookEventType.seed do |b| + b.id = WebHookEventType::TOPIC_VOTING + b.name = "topic_voting" +end diff --git a/spec/models/web_hook_spec.rb b/spec/models/web_hook_spec.rb index 5a6bf1757ab..196f91a0e0c 100644 --- a/spec/models/web_hook_spec.rb +++ b/spec/models/web_hook_spec.rb @@ -54,8 +54,16 @@ RSpec.describe WebHook do it "includes enabled plugin web_hooks" do SiteSetting.stubs(:solved_enabled).returns(true) - web_hook_event_types = WebHookEventType.active.where(name: "solved") - expect(web_hook_event_types.count).to eq(1) + solved_event_types = WebHookEventType.active.where(name: "solved") + expect(solved_event_types.count).to eq(1) + + SiteSetting.stubs(:assign_enabled).returns(true) + assign_event_types = WebHookEventType.active.where(name: "assign") + expect(assign_event_types.count).to eq(1) + + SiteSetting.stubs(:voting_enabled).returns(true) + voting_event_types = WebHookEventType.active.where(name: "topic_voting") + expect(voting_event_types.count).to eq(1) end describe "#active_web_hooks" do