File tree 5 files changed +45
-3
lines changed
5 files changed +45
-3
lines changed Original file line number Diff line number Diff line change 1
1
module PagerTree ::Integrations
2
2
class Datadog ::V3 < Integration
3
- OPTIONS = [ ]
3
+ OPTIONS = [
4
+ { key : :support_retriggered_event , type : :boolean , default : false }
5
+ ]
4
6
store_accessor :options , *OPTIONS . map { |x | x [ :key ] } . map ( &:to_s ) , prefix : "option"
5
7
6
8
after_initialize do
9
+ self . option_support_retriggered_event ||= false
7
10
end
8
11
9
12
def adapter_supports_incoming?
@@ -24,8 +27,12 @@ def adapter_thirdparty_id
24
27
25
28
def adapter_action
26
29
case _transition
27
- when "Triggered" then :create
28
- when "Recovered" then :resolve
30
+ when "Triggered"
31
+ :create
32
+ when "Recovered"
33
+ :resolve
34
+ when "Re-Triggered"
35
+ self . option_support_retriggered_event == true ? :recreate : :other
29
36
else
30
37
:other
31
38
end
Original file line number Diff line number Diff line change
1
+ < div class ="grid grid-cols-1 gap-4 ">
2
+ < div class ="form-group group ">
3
+ <%= form . check_box :option_support_retriggered_event , class : "form-checkbox" %>
4
+ <%= form . label :option_support_retriggered_event , class : "inline-block" %>
5
+ < p class ="form-hint md:inline-block "> <%== t ( ".option_support_retriggered_event_hint_html" ) %> </ p >
6
+ </ div >
7
+ </ div >
Original file line number Diff line number Diff line change
1
+ < div class ="sm:col-span-1 ">
2
+ < dt class ="text-sm font-medium text-gray-500 ">
3
+ <%= t ( "activerecord.attributes.pager_tree/integrations/datadog/v3.option_support_retriggered_event" ) %>
4
+ </ dt >
5
+ < dd class ="mt-1 text-sm text-gray-900 ">
6
+ < div class ="flex items-center gap-2 ">
7
+ < p class ="text-sm truncate ">
8
+ <%= render partial : "shared/components/badge_enabled" , locals : { enabled : integration . option_support_retriggered_event } %>
9
+ </ p >
10
+ </ div >
11
+ </ dd >
12
+ </ div >
Original file line number Diff line number Diff line change 32
32
v3 :
33
33
form_options :
34
34
option_webhook_secret_hint_html : " Cloudflare Webhook Secret"
35
+ datadog :
36
+ v3 :
37
+ form_options :
38
+ option_support_retriggered_event_hint_html : " Create a new alert when the 'Re-Triggered' event is sent by Datadog"
35
39
email :
36
40
v3 :
37
41
form_options :
157
161
option_time_zone : " Display Time Zone"
158
162
" pager_tree/integrations/cloudflare/v3 " :
159
163
option_webhook_secret : " Webhook Secret"
164
+ " pager_tree/integrations/datadog/v3 " :
165
+ option_support_retriggered_event : " Retriggered Event"
160
166
" pager_tree/integrations/email/v3 " :
161
167
option_allow_spam : " Allow Spam"
162
168
option_dedup_threads : " Dedup Threads"
Original file line number Diff line number Diff line change @@ -32,6 +32,9 @@ class Datadog::V3Test < ActiveSupport::TestCase
32
32
@resolve_request = @create_request . deep_dup
33
33
@resolve_request [ :ALERT_TRANSITION ] = "Recovered"
34
34
35
+ @retriggered_request = @create_request . deep_dup
36
+ @retriggered_request [ :ALERT_TRANSITION ] = "Re-Triggered"
37
+
35
38
@other_request = @create_request . deep_dup
36
39
@other_request [ :ALERT_TRANSITION ] = "baaad"
37
40
end
@@ -54,6 +57,13 @@ class Datadog::V3Test < ActiveSupport::TestCase
54
57
55
58
@integration . adapter_incoming_request_params = @other_request
56
59
assert_equal :other , @integration . adapter_action
60
+
61
+ @integration . adapter_incoming_request_params = @retriggered_request
62
+ assert_equal :other , @integration . adapter_action
63
+
64
+ @integration . option_support_retriggered_event = true
65
+ @integration . adapter_incoming_request_params = @retriggered_request
66
+ assert_equal :recreate , @integration . adapter_action
57
67
end
58
68
59
69
test "adapter_thirdparty_id" do
You can’t perform that action at this time.
0 commit comments