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:

{“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"}

{“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/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

Public Instance Methods

errors() click to toggle source
# File lib/mangopay/common/response_error.rb, line 47
def errors
  @details['errors'] if @details
end
message() click to toggle source
# 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
type() click to toggle source
# File lib/mangopay/common/response_error.rb, line 43
def type
  @details['Type'] if @details
end