Exception: MangoPay::ResponseError

Inherits:
Error
  • Object
show all
Defined in:
lib/mangopay/errors.rb

Overview

See docs.mangopay.com/api-references/response-codes-rules/ and docs.mangopay.com/api-references/error-codes/

Thrown from any MangoPay API call whenever it returns response with HTTP code != 200. Check @details hash for further info.

Two example exceptions with details:

#<MangoPay::ResponseError:

One or several required parameters are missing or incorrect. [...]
Email: The Email field is required.>

or several required parameters are missing or incorrect.

 An incorrect resource ID also raises this kind of error.",
"Type"=>"param_error",
"Id"=>"66936e92-3f21-4a35-b6cf-f1d17c2fb6e5",
"Date"=>1409047252.0,
"errors"=>{"Email"=>"The Email field is required.",
"Code"=>"400",
"Url"=>"/v2/sdk-unit-tests/users/natural"}

#<MangoPay::ResponseError: Internal Server Error> {“Message”=>“Internal Server Error”,

"Type"=>"other",
"Id"=>"7bdc5c6f-2000-4cd3-96f3-2a3fcb746f07",
"Date"=>1409047251.0,
"errors"=>nil,
"Code"=>"500",
"Url"=>"/v2/sdk-unit-tests/payins/3380640/refunds"}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_url, code, details) ⇒ ResponseError

Returns a new instance of ResponseError


42
43
44
45
46
47
48
49
# File 'lib/mangopay/errors.rb', line 42

def initialize(request_url, code, details)
  @request_url, @code, @details = request_url, code, details

  @details['Code'] = code
  @details['Url'] = request_url.request_uri

  super(message) if message
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code


40
41
42
# File 'lib/mangopay/errors.rb', line 40

def code
  @code
end

#detailsObject (readonly)

Returns the value of attribute details


40
41
42
# File 'lib/mangopay/errors.rb', line 40

def details
  @details
end

#request_urlObject (readonly)

Returns the value of attribute request_url


40
41
42
# File 'lib/mangopay/errors.rb', line 40

def request_url
  @request_url
end

Instance Method Details

#errorsObject


52
# File 'lib/mangopay/errors.rb', line 52

def errors;  @details['errors']; end

#messageObject


54
55
56
57
58
# File 'lib/mangopay/errors.rb', line 54

def message;
  msg = @details['Message']
  msg += errors.sort.map {|k,v| " #{k}: #{v}"}.join if (errors && errors.is_a?(Hash))
  msg
end

#typeObject


51
# File 'lib/mangopay/errors.rb', line 51

def type;    @details['Type']; end