From c9cf8eae1eb717823d251034944e93722aa26dc4 Mon Sep 17 00:00:00 2001 From: Krzysztof Kotlarek Date: Tue, 15 Aug 2023 11:21:15 +1000 Subject: [PATCH 1/4] FIX: translations for granular webhooks After those core changes we need additional translations https://github.com/discourse/discourse/pull/23070 --- config/locales/client.en.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 169d78a5..25a33ecc 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -102,9 +102,10 @@ en: assigned_to_you: "assigned to you" admin: web_hooks: - assign_event: - name: "Assign Event" - details: "When a user assigns or unassigns a topic." + groups: + assign: "Assign Events" + event_details: + assign: "When an user assigns or unassigns a topic" search: advanced: in: From cac970f42a43d77e6018ea053b95c438f72f2250 Mon Sep 17 00:00:00 2001 From: Krzysztof Kotlarek Date: Tue, 15 Aug 2023 13:41:16 +1000 Subject: [PATCH 2/4] FIX: granular webhooks --- config/locales/client.en.yml | 3 ++- lib/assigner.rb | 4 ++-- lib/discourse_assign/web_hook_extension.rb | 4 +--- spec/fabricators/assign_hook_fabricator.rb | 7 +++++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 25a33ecc..5c017838 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -105,7 +105,8 @@ en: groups: assign: "Assign Events" event_details: - assign: "When an user assigns or unassigns a topic" + assigned: "When an user assigns a topic" + unassigned: "When an user unassigns a topic" search: advanced: in: diff --git a/lib/assigner.rb b/lib/assigner.rb index 8e379784..5880a0f1 100644 --- a/lib/assigner.rb +++ b/lib/assigner.rb @@ -335,7 +335,7 @@ def assign(assign_to, note: nil, skip_small_action_post: false, status: nil) end # Create a webhook event - if WebHook.active_web_hooks(:assign).exists? + if WebHook.active_web_hooks(:assigned).exists? assigned_to_type = :assigned payload = { type: assigned_to_type, @@ -413,7 +413,7 @@ def unassign(silent: false, deactivate: false) end # Create a webhook event - if WebHook.active_web_hooks(:assign).exists? + if WebHook.active_web_hooks(:unassigned).exists? type = :unassigned payload = { type: type, diff --git a/lib/discourse_assign/web_hook_extension.rb b/lib/discourse_assign/web_hook_extension.rb index d685b4fd..b80f4cf1 100644 --- a/lib/discourse_assign/web_hook_extension.rb +++ b/lib/discourse_assign/web_hook_extension.rb @@ -5,9 +5,7 @@ module WebHookExtension def self.prepended(base) base.class_eval do def self.enqueue_assign_hooks(event, payload) - if active_web_hooks("assign").exists? - WebHook.enqueue_hooks(:assign, event, payload: payload) - end + WebHook.enqueue_hooks(:assign, event, payload: payload) if active_web_hooks(event).exists? end end end diff --git a/spec/fabricators/assign_hook_fabricator.rb b/spec/fabricators/assign_hook_fabricator.rb index e331154e..9dabfee9 100644 --- a/spec/fabricators/assign_hook_fabricator.rb +++ b/spec/fabricators/assign_hook_fabricator.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true Fabricator(:assign_web_hook, from: :web_hook) do - transient assign_hook: WebHookEventType.find_by(name: "assign") + transient assigned_hook: WebHookEventType.find_by(name: "assigned"), + unassigned_hook: WebHookEventType.find_by(name: "unassigned") - after_build { |web_hook, transients| web_hook.web_hook_event_types = [transients[:assign_hook]] } + after_build do |web_hook, transients| + web_hook.web_hook_event_types = [transients[:assigned_hook], transients[:unassigned_hook]] + end end From a57560410de59abd97c2b1e4609c9f6d747495cb Mon Sep 17 00:00:00 2001 From: Krzysztof Kotlarek Date: Tue, 26 Sep 2023 11:34:18 +1000 Subject: [PATCH 3/4] FIX: update after changes --- config/locales/client.en.yml | 5 ++--- spec/fabricators/assign_hook_fabricator.rb | 7 ++----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 5c017838..f4338025 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -102,9 +102,8 @@ en: assigned_to_you: "assigned to you" admin: web_hooks: - groups: - assign: "Assign Events" - event_details: + assign_event: + group_name: "Assign Events" assigned: "When an user assigns a topic" unassigned: "When an user unassigns a topic" search: diff --git a/spec/fabricators/assign_hook_fabricator.rb b/spec/fabricators/assign_hook_fabricator.rb index 9dabfee9..203e374f 100644 --- a/spec/fabricators/assign_hook_fabricator.rb +++ b/spec/fabricators/assign_hook_fabricator.rb @@ -1,10 +1,7 @@ # frozen_string_literal: true Fabricator(:assign_web_hook, from: :web_hook) do - transient assigned_hook: WebHookEventType.find_by(name: "assigned"), - unassigned_hook: WebHookEventType.find_by(name: "unassigned") - - after_build do |web_hook, transients| - web_hook.web_hook_event_types = [transients[:assigned_hook], transients[:unassigned_hook]] + after_build do |web_hook| + web_hook.web_hook_event_types = WebHookEventType.where(name: %w[assigned unassigned]) end end From 053d985e650225ba0d804fd078587f62ff21edd0 Mon Sep 17 00:00:00 2001 From: Krzysztof Kotlarek Date: Fri, 6 Oct 2023 12:12:12 +1100 Subject: [PATCH 4/4] FIX: discourse compatibility --- .discourse-compatibility | 1 + 1 file changed, 1 insertion(+) diff --git a/.discourse-compatibility b/.discourse-compatibility index 2dd85291..90fb6de8 100644 --- a/.discourse-compatibility +++ b/.discourse-compatibility @@ -1,3 +1,4 @@ +< 3.2.0.beta2-dev: df34e91b55d0d068bd983fd6a9fd7d3235cfc1fe 3.1.0.beta3: 9c270cac9abc1c2b30574d8c655fb3a90546236b 2.9.0.beta8: 28bc8ab78a09551548c87f511ade3d64e1b04bc3 2.9.0.beta3: 46f200935dc9e5750c3f2740abd993e27a9b3f6c