Exception: Fanforce::Error::AppFailed

Inherits:
Fanforce::Error show all
Defined in:
lib/fanforce/errors/_base.rb

Overview

A 3rd-party app crapped out

Instance Attribute Summary collapse

Attributes inherited from Fanforce::Error

#env, #public_errors

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Fanforce::Error

#code, #curl_command, #for, #format_error, #format_errors

Constructor Details

#initialize(_id, e, msg, &block) ⇒ AppFailed

Returns a new instance of AppFailed.



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/fanforce/errors/_base.rb', line 125

def initialize(_id, e, msg, &block)
  app_dev_error = {}
  app_dev_error[:problem] = msg
  if e.is_a?(Fanforce::Errors::WebhookFailed)
    app_dev_error[:request_url] = e.request_url
    app_dev_error[:request_params] = e.request_params
    app_dev_error[:response_code] = e.response_code
    app_dev_error[:response_body] = e.response_body.to_s
    app_dev_error[:curl_command] = "curl -X POST -d \"#{e.request_params.to_param}\" #{e.request_url}"
  end
  @app_dev_errors = e.respond_to?(:app_dev_errors) ? e.app_dev_errors : []
  @app_dev_errors << app_dev_error

  self.class.handler_blocks.each {|block| block.call(_id, app_dev_error,  e.backtrace) }
  super(msg)
end

Instance Attribute Details

#app_dev_errorObject (readonly)

Returns the value of attribute app_dev_error.



120
121
122
# File 'lib/fanforce/errors/_base.rb', line 120

def app_dev_error
  @app_dev_error
end

Class Method Details

.handler(&block) ⇒ Object



142
143
144
# File 'lib/fanforce/errors/_base.rb', line 142

def self.handler(&block)
  handler_blocks << block
end

.handler_blocksObject



146
147
148
# File 'lib/fanforce/errors/_base.rb', line 146

def self.handler_blocks
  @handler_blocks ||= []
end

Instance Method Details

#default_error_codeObject



123
# File 'lib/fanforce/errors/_base.rb', line 123

def default_error_code; :third_party_error end

#default_messageObject



121
# File 'lib/fanforce/errors/_base.rb', line 121

def default_message; 'Third-Party App Error' end

#valid_error_codesObject



122
# File 'lib/fanforce/errors/_base.rb', line 122

def valid_error_codes; [:third_party_error] end