Module: ForestAdminDatasourceZendesk::Plugins::CloseTicket::Errors
- Defined in:
- lib/forest_admin_datasource_zendesk/plugins/close_ticket/errors.rb
Overview
Decoding helpers for Zendesk’s structured update-error payloads.
Constant Summary collapse
- ALREADY_CLOSED_DESCRIPTION =
Zendesk refuses any update on a closed ticket with this exact wording on the ‘status` field — detected so we can swap the raw stack for a clean message.
'closed prevents ticket update'.freeze
Class Method Summary collapse
Class Method Details
.already_closed?(error) ⇒ Boolean
13 14 15 16 17 18 19 20 21 |
# File 'lib/forest_admin_datasource_zendesk/plugins/close_ticket/errors.rb', line 13 def already_closed?(error) invalid = unwrap_record_invalid(error) return false unless invalid status_errors = invalid.errors.is_a?(Hash) ? Array(invalid.errors['status']) : [] status_errors.any? do |entry| entry.is_a?(Hash) && entry['description'].to_s.include?(ALREADY_CLOSED_DESCRIPTION) end end |
.unwrap_record_invalid(error) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/forest_admin_datasource_zendesk/plugins/close_ticket/errors.rb', line 23 def unwrap_record_invalid(error) while error return error if error.is_a?(ZendeskAPI::Error::RecordInvalid) error = error.cause end nil end |