Exception: MangoPay::ResponseError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/mangopay/common/response_error.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.



36
37
38
39
40
41
# File 'lib/mangopay/common/response_error.rb', line 36

def initialize(request_url, code, details)
  @request_url = request_url
  @code = code
  @details = details
  super(message) if message
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



34
35
36
# File 'lib/mangopay/common/response_error.rb', line 34

def code
  @code
end

#detailsObject (readonly)

Returns the value of attribute details.



34
35
36
# File 'lib/mangopay/common/response_error.rb', line 34

def details
  @details
end

#request_urlObject (readonly)

Returns the value of attribute request_url.



34
35
36
# File 'lib/mangopay/common/response_error.rb', line 34

def request_url
  @request_url
end

Instance Method Details

#errorsObject



47
48
49
# File 'lib/mangopay/common/response_error.rb', line 47

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

#messageObject



51
52
53
54
55
56
57
58
# File 'lib/mangopay/common/response_error.rb', line 51

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

#typeObject



43
44
45
# File 'lib/mangopay/common/response_error.rb', line 43

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