Class: ChangeHealth::Models::Error

Inherits:
Object
  • Object
show all
Defined in:
lib/change_health/models/error.rb

Constant Summary collapse

SIMPLE_RETRY_CODES =
%w[
  42
  80
].freeze
NO_RESUBMIT_MESSAGES =
[
  'resubmission not allowed',
  'do not resubmit'
].freeze
DOWN_FIELD =
'Http Header'.freeze
DOWN_MESSAGE =
'Please review http headers for this API, please contact support if you are unsure how to resolve.'.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Error

Returns a new instance of Error.



21
22
23
# File 'lib/change_health/models/error.rb', line 21

def initialize(data)
  @data = data
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



5
6
7
# File 'lib/change_health/models/error.rb', line 5

def data
  @data
end

Instance Method Details

#code_messageObject



33
34
35
# File 'lib/change_health/models/error.rb', line 33

def code_message
  "#{code}: #{description}" if code?
end

#field_messageObject



29
30
31
# File 'lib/change_health/models/error.rb', line 29

def field_message
  "#{field}: #{description}" if field?
end

#messageObject



25
26
27
# File 'lib/change_health/models/error.rb', line 25

def message
  field_message || code_message
end

#represents_down?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/change_health/models/error.rb', line 37

def represents_down?
  field == DOWN_FIELD && description == DOWN_MESSAGE
end

#retryable?Boolean

Returns:

  • (Boolean)


41
42
43
44
# File 'lib/change_health/models/error.rb', line 41

def retryable?
  represents_down? ||
    (code? && SIMPLE_RETRY_CODES.include?(code) && followupAction? && NO_RESUBMIT_MESSAGES.none? {|msg| followupAction.downcase.include?(msg) })
end