class MangoPay::ResponseError

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.>

{“Message”=>“One 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"}

Attributes

code[R]
details[R]
request_url[R]

Public Class Methods

new(request_url, code, details) click to toggle source
Calls superclass method
# 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

Public Instance Methods

error() click to toggle source
# File lib/mangopay/errors.rb, line 52
def error;   @details['error']; end
errors() click to toggle source
# File lib/mangopay/errors.rb, line 53
def errors;  @details['errors'] || error; end
message() click to toggle source
# File lib/mangopay/errors.rb, line 55
def message;
  if error
    msg = error
  else
    msg = @details['Message']
    msg += errors.sort.map {|k,v| " #{k}: #{v}"}.join if (errors && errors.is_a?(Hash))
    msg
  end
end
type() click to toggle source
# File lib/mangopay/errors.rb, line 51
def type;    @details['Type']; end