Class: PagerTree::Integrations::Integration

Inherits:
Object
  • Object
show all
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

Methods included from BooleanStoreAccessor

boolean_store_accessor

Instance Method Details

#adapter_actionObject

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

Returns:

  • (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

Returns:

  • (Boolean)


75
76
77
# File 'app/models/pager_tree/integrations/integration.rb', line 75

def adapter_outgoing_interest?(event_name)
  false
end

#adapter_process_createObject



59
60
# File 'app/models/pager_tree/integrations/integration.rb', line 59

def adapter_process_create
end

#adapter_process_otherObject



62
63
# File 'app/models/pager_tree/integrations/integration.rb', line 62

def adapter_process_other
end

#adapter_process_outgoingObject



79
80
# File 'app/models/pager_tree/integrations/integration.rb', line 79

def adapter_process_outgoing
end

#adapter_response_blockedObject



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_codeObject



163
164
165
# File 'app/models/pager_tree/integrations/integration.rb', line 163

def adapter_response_blocked_code
  :forbidden
end

#adapter_response_deferredObject



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_codeObject



171
172
173
# File 'app/models/pager_tree/integrations/integration.rb', line 171

def adapter_response_deferred_code
  :ok
end

#adapter_response_disabledObject



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_codeObject



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_subscriptionObject



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_codeObject



139
140
141
# File 'app/models/pager_tree/integrations/integration.rb', line 139

def adapter_response_inactive_subscription_code
  :payment_required
end

#adapter_response_incomingObject



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_codeObject



179
180
181
# File 'app/models/pager_tree/integrations/integration.rb', line 179

def adapter_response_incoming_code
  :ok
end

#adapter_response_maintenance_modeObject



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_codeObject



155
156
157
# File 'app/models/pager_tree/integrations/integration.rb', line 155

def adapter_response_maintenance_mode_code
  :ok
end

#adapter_response_rate_limitObject

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_codeObject



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_upgradeObject



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_codeObject



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)

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (Boolean)


93
94
95
# File 'app/models/pager_tree/integrations/integration.rb', line 93

def adapter_supports_cnames?
  false
end

#adapter_supports_description_template?Boolean

Returns:

  • (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

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


84
85
86
# File 'app/models/pager_tree/integrations/integration.rb', line 84

def adapter_supports_title_template?
  true
end

#adapter_thirdparty_idObject

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

Returns:

  • (Boolean)


65
66
67
# File 'app/models/pager_tree/integrations/integration.rb', line 65

def adapter_will_route_alert?
  false
end

#cast_typesObject



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_toObject



32
33
# File 'app/models/pager_tree/integrations/integration.rb', line 32

def converts_to
end