Class: PagerTree::Integrations::Integration
- Inherits:
-
Object
- Object
- PagerTree::Integrations::Integration
- Extended by:
- BooleanStoreAccessor
- Defined in:
- app/models/pager_tree/integrations/integration.rb
Constant Summary collapse
- GENERIC_OPTIONS =
[ {key: :title_template, type: :string, default: nil}, {key: :title_template_enabled, type: :boolean, default: false}, {key: :description_template, type: :string, default: nil}, {key: :description_template_enabled, type: :boolean, default: false} ]
Instance Method Summary collapse
-
#adapter_action ⇒ Object
Returns :create, :resolve, or :other.
- #adapter_incoming_can_defer? ⇒ Boolean
- #adapter_outgoing_interest?(event_name) ⇒ Boolean
- #adapter_process_create ⇒ Object
- #adapter_process_other ⇒ Object
- #adapter_process_outgoing ⇒ Object
- #adapter_response_blocked ⇒ Object
- #adapter_response_blocked_code ⇒ Object
- #adapter_response_deferred ⇒ Object
- #adapter_response_deferred_code ⇒ Object
- #adapter_response_disabled ⇒ Object
- #adapter_response_disabled_code ⇒ Object
- #adapter_response_inactive_subscription ⇒ Object
- #adapter_response_inactive_subscription_code ⇒ Object
- #adapter_response_incoming ⇒ Object
- #adapter_response_incoming_code ⇒ Object
- #adapter_response_maintenance_mode ⇒ Object
- #adapter_response_maintenance_mode_code ⇒ Object
-
#adapter_response_rate_limit ⇒ Object
END basic show functions.
- #adapter_response_rate_limit_code ⇒ Object
- #adapter_response_upgrade ⇒ Object
- #adapter_response_upgrade_code ⇒ Object
-
#adapter_should_block_incoming?(request) ⇒ Boolean
a function to determine if we should block the incoming request (e.g. if the payload doesn't match a signature).
-
#adapter_show_alerts? ⇒ Boolean
START basic show functions.
- #adapter_show_logs? ⇒ Boolean
- #adapter_show_outgoing_webhook_delivery? ⇒ Boolean
- #adapter_supports_auto_aggregate? ⇒ Boolean
- #adapter_supports_auto_resolve? ⇒ Boolean
-
#adapter_supports_cnames? ⇒ Boolean
END template functions.
- #adapter_supports_description_template? ⇒ Boolean
-
#adapter_supports_incoming? ⇒ Boolean
START basic incoming functions.
-
#adapter_supports_outgoing? ⇒ Boolean
START basic outgoing functions.
-
#adapter_supports_title_template? ⇒ Boolean
START template functions.
-
#adapter_thirdparty_id ⇒ Object
A unique identifier for this integration/alert.
- #adapter_will_route_alert? ⇒ Boolean
- #cast_types ⇒ Object
- #converts_to ⇒ Object
Methods included from BooleanStoreAccessor
Instance Method Details
#adapter_action ⇒ Object
Returns :create, :resolve, or :other
55 56 57 |
# File 'app/models/pager_tree/integrations/integration.rb', line 55 def adapter_action :other end |
#adapter_incoming_can_defer? ⇒ Boolean
50 51 52 |
# File 'app/models/pager_tree/integrations/integration.rb', line 50 def adapter_incoming_can_defer? true end |
#adapter_outgoing_interest?(event_name) ⇒ Boolean
75 76 77 |
# File 'app/models/pager_tree/integrations/integration.rb', line 75 def adapter_outgoing_interest?(event_name) false end |
#adapter_process_create ⇒ Object
59 60 |
# File 'app/models/pager_tree/integrations/integration.rb', line 59 def adapter_process_create end |
#adapter_process_other ⇒ Object
62 63 |
# File 'app/models/pager_tree/integrations/integration.rb', line 62 def adapter_process_other end |
#adapter_process_outgoing ⇒ Object
79 80 |
# File 'app/models/pager_tree/integrations/integration.rb', line 79 def adapter_process_outgoing end |
#adapter_response_blocked ⇒ Object
159 160 161 |
# File 'app/models/pager_tree/integrations/integration.rb', line 159 def adapter_response_blocked adapter_controller&.head(adapter_response_blocked_code) end |
#adapter_response_blocked_code ⇒ Object
163 164 165 |
# File 'app/models/pager_tree/integrations/integration.rb', line 163 def adapter_response_blocked_code :forbidden end |
#adapter_response_deferred ⇒ Object
167 168 169 |
# File 'app/models/pager_tree/integrations/integration.rb', line 167 def adapter_response_deferred adapter_controller&.head(adapter_response_deferred_code) end |
#adapter_response_deferred_code ⇒ Object
171 172 173 |
# File 'app/models/pager_tree/integrations/integration.rb', line 171 def adapter_response_deferred_code :ok end |
#adapter_response_disabled ⇒ Object
127 128 129 |
# File 'app/models/pager_tree/integrations/integration.rb', line 127 def adapter_response_disabled adapter_controller&.head(adapter_response_disabled_code) end |
#adapter_response_disabled_code ⇒ Object
131 132 133 |
# File 'app/models/pager_tree/integrations/integration.rb', line 131 def adapter_response_disabled_code :method_not_allowed end |
#adapter_response_inactive_subscription ⇒ Object
135 136 137 |
# File 'app/models/pager_tree/integrations/integration.rb', line 135 def adapter_response_inactive_subscription adapter_controller&.head(adapter_response_inactive_subscription_code) end |
#adapter_response_inactive_subscription_code ⇒ Object
139 140 141 |
# File 'app/models/pager_tree/integrations/integration.rb', line 139 def adapter_response_inactive_subscription_code :payment_required end |
#adapter_response_incoming ⇒ Object
175 176 177 |
# File 'app/models/pager_tree/integrations/integration.rb', line 175 def adapter_response_incoming adapter_controller&.head(adapter_response_incoming_code) end |
#adapter_response_incoming_code ⇒ Object
179 180 181 |
# File 'app/models/pager_tree/integrations/integration.rb', line 179 def adapter_response_incoming_code :ok end |
#adapter_response_maintenance_mode ⇒ Object
151 152 153 |
# File 'app/models/pager_tree/integrations/integration.rb', line 151 def adapter_response_maintenance_mode adapter_controller&.head(adapter_response_maintenance_mode_code) end |
#adapter_response_maintenance_mode_code ⇒ Object
155 156 157 |
# File 'app/models/pager_tree/integrations/integration.rb', line 155 def adapter_response_maintenance_mode_code :ok end |
#adapter_response_rate_limit ⇒ Object
END basic show functions
119 120 121 |
# File 'app/models/pager_tree/integrations/integration.rb', line 119 def adapter_response_rate_limit adapter_controller&.head(adapter_response_rate_limit_code) end |
#adapter_response_rate_limit_code ⇒ Object
123 124 125 |
# File 'app/models/pager_tree/integrations/integration.rb', line 123 def adapter_response_rate_limit_code :too_many_requests end |
#adapter_response_upgrade ⇒ Object
143 144 145 |
# File 'app/models/pager_tree/integrations/integration.rb', line 143 def adapter_response_upgrade adapter_controller&.head(adapter_response_upgrade_code) end |
#adapter_response_upgrade_code ⇒ Object
147 148 149 |
# File 'app/models/pager_tree/integrations/integration.rb', line 147 def adapter_response_upgrade_code :payment_required end |
#adapter_should_block_incoming?(request) ⇒ Boolean
a function to determine if we should block the incoming request (e.g. if the payload doesn't match a signature)
41 42 43 |
# File 'app/models/pager_tree/integrations/integration.rb', line 41 def adapter_should_block_incoming?(request) false end |
#adapter_show_alerts? ⇒ Boolean
START basic show functions
106 107 108 |
# File 'app/models/pager_tree/integrations/integration.rb', line 106 def adapter_show_alerts? adapter_supports_incoming? end |
#adapter_show_logs? ⇒ Boolean
110 111 112 |
# File 'app/models/pager_tree/integrations/integration.rb', line 110 def adapter_show_logs? true end |
#adapter_show_outgoing_webhook_delivery? ⇒ Boolean
114 115 116 |
# File 'app/models/pager_tree/integrations/integration.rb', line 114 def adapter_show_outgoing_webhook_delivery? false end |
#adapter_supports_auto_aggregate? ⇒ Boolean
97 98 99 |
# File 'app/models/pager_tree/integrations/integration.rb', line 97 def adapter_supports_auto_aggregate? true end |
#adapter_supports_auto_resolve? ⇒ Boolean
101 102 103 |
# File 'app/models/pager_tree/integrations/integration.rb', line 101 def adapter_supports_auto_resolve? true end |
#adapter_supports_cnames? ⇒ Boolean
END template functions
93 94 95 |
# File 'app/models/pager_tree/integrations/integration.rb', line 93 def adapter_supports_cnames? false end |
#adapter_supports_description_template? ⇒ Boolean
88 89 90 |
# File 'app/models/pager_tree/integrations/integration.rb', line 88 def adapter_supports_description_template? true end |
#adapter_supports_incoming? ⇒ Boolean
START basic incoming functions
36 37 38 |
# File 'app/models/pager_tree/integrations/integration.rb', line 36 def adapter_supports_incoming? false end |
#adapter_supports_outgoing? ⇒ Boolean
START basic outgoing functions
71 72 73 |
# File 'app/models/pager_tree/integrations/integration.rb', line 71 def adapter_supports_outgoing? false end |
#adapter_supports_title_template? ⇒ Boolean
START template functions
84 85 86 |
# File 'app/models/pager_tree/integrations/integration.rb', line 84 def adapter_supports_title_template? true end |
#adapter_thirdparty_id ⇒ Object
A unique identifier for this integration/alert
46 47 48 |
# File 'app/models/pager_tree/integrations/integration.rb', line 46 def adapter_thirdparty_id ULID.generate end |
#adapter_will_route_alert? ⇒ Boolean
65 66 67 |
# File 'app/models/pager_tree/integrations/integration.rb', line 65 def adapter_will_route_alert? false end |
#cast_types ⇒ Object
183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
# File 'app/models/pager_tree/integrations/integration.rb', line 183 def cast_types (self.class.const_get(:GENERIC_OPTIONS) + self.class.const_get(:OPTIONS)).each do |option| key = option[:key] value = send("option_#{key}") type = option[:type] value = ActiveModel::Type::Boolean.new.cast(value) if type == :boolean value = ActiveModel::Type::String.new.cast(value) if type == :string value = ActiveModel::Type::Integer.new.cast(value) if type == :integer value = option[:default] if value.nil? && option.has_key?(:default) send("option_#{key}=", value) end end |
#converts_to ⇒ Object
32 33 |
# File 'app/models/pager_tree/integrations/integration.rb', line 32 def converts_to end |