Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions app/models/pager_tree/integrations/elast_alert/v3.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,24 +45,24 @@ def adapter_process_create
# elastalert will raise an error for any 4xx or 5xx response and then retry for a default of 2 days
# https://github.com/Yelp/elastalert/blob/master/elastalert/alerts.py#L1496
# we don't want to get spammy with retries, so we'll just return a 200
def adapter_response_rate_limit
adapter_controller&.head(:ok)
def adapter_response_rate_limit_code
:ok
end

def adapter_response_disabled
adapter_controller&.head(:ok)
def adapter_response_disabled_code
:ok
end

def adapter_response_inactive_subscription
adapter_controller&.head(:ok)
def adapter_response_inactive_subscription_code
:ok
end

def adapter_response_upgrade
adapter_controller&.head(:ok)
def adapter_response_upgrade_code
:ok
end

def adapter_response_blocked
adapter_controller&.head(:ok)
def adapter_response_blocked_code
:ok
end

private
Expand Down
18 changes: 15 additions & 3 deletions app/models/pager_tree/integrations/form/v3.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,27 @@ def adapter_supports_cnames?
end

def adapter_response_inactive_subscription
adapter_controller&.render(status: :payment_required, json: {code: Rack::Utils.status_code(:payment_required), errors: ["Customer must subscribe service plan to use this integration"]})
adapter_controller&.render(status: adapter_response_inactive_subscription_code, json: {code: Rack::Utils.status_code(adapter_response_inactive_subscription_code), errors: ["Customer must subscribe service plan to use this integration"]})
end

def adapter_response_inactive_subscription_code
:payment_required
end

def adapter_response_upgrade
adapter_controller&.render(status: :payment_required, json: {code: Rack::Utils.status_code(:payment_required), errors: ["Customer must upgrade service plan to use this integration"]})
adapter_controller&.render(status: adapter_response_upgrade_code, json: {code: Rack::Utils.status_code(adapter_response_upgrade_code), errors: ["Customer must upgrade service plan to use this integration"]})
end

def adapter_response_upgrade_code
:payment_required
end

def adapter_response_maintenance_mode
adapter_controller&.render(status: :service_unavailable, json: {code: Rack::Utils.status_code(:service_unavailable), errors: ["Integration currently in maintenance mode"]})
adapter_controller&.render(status: adapter_response_maintenance_mode_code, json: {code: Rack::Utils.status_code(adapter_response_maintenance_mode_code), errors: ["Integration currently in maintenance mode"]})
end

def adapter_response_maintenance_mode_code
:service_unavailable
end

def adapter_thirdparty_id
Expand Down
48 changes: 40 additions & 8 deletions app/models/pager_tree/integrations/integration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -117,35 +117,67 @@ def adapter_show_outgoing_webhook_delivery?
# END basic show functions

def adapter_response_rate_limit
adapter_controller&.head(:too_many_requests)
adapter_controller&.head(adapter_response_rate_limit_code)
end

def adapter_response_rate_limit_code
:too_many_requests
end
Comment on lines 119 to 125
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New public interface methods adapter_response_*_code are introduced/relied on by the base response helpers, but the existing integration interface tests only assert the presence of adapter_response_* methods. Please add/update tests to cover these new *_code methods (at least respond_to? assertions in the shared Integrateable interface test), so future integrations/changes don’t accidentally drop or rename them.

Copilot uses AI. Check for mistakes.

def adapter_response_disabled
adapter_controller&.head(:method_not_allowed)
adapter_controller&.head(adapter_response_disabled_code)
end

def adapter_response_disabled_code
:method_not_allowed
end

def adapter_response_inactive_subscription
adapter_controller&.head(:payment_required)
adapter_controller&.head(adapter_response_inactive_subscription_code)
end

def adapter_response_inactive_subscription_code
:payment_required
end

def adapter_response_upgrade
adapter_controller&.head(:payment_required)
adapter_controller&.head(adapter_response_upgrade_code)
end

def adapter_response_upgrade_code
:payment_required
end

def adapter_response_maintenance_mode
adapter_controller&.head(:ok)
adapter_controller&.head(adapter_response_maintenance_mode_code)
end

def adapter_response_maintenance_mode_code
:ok
end

def adapter_response_blocked
adapter_controller&.head(:forbidden)
adapter_controller&.head(adapter_response_blocked_code)
end

def adapter_response_blocked_code
:forbidden
end

def adapter_response_deferred
adapter_controller&.head(:ok)
adapter_controller&.head(adapter_response_deferred_code)
end

def adapter_response_deferred_code
:ok
end

def adapter_response_incoming
adapter_controller&.head(:ok)
adapter_controller&.head(adapter_response_incoming_code)
end

def adapter_response_incoming_code
:ok
end

def cast_types
Expand Down