Exception: OnlinePayments::SDK::Communication::ResponseException

Inherits:
RuntimeError
  • Object
show all
Defined in:
lib/onlinepayments/sdk/communication/response_exception.rb

Overview

Exception used internally in the SDK to indicate an error response was received from the Online Payments platform.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status_code, headers, body) ⇒ ResponseException

Returns a new instance of ResponseException.



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/onlinepayments/sdk/communication/response_exception.rb', line 13

def initialize(status_code, headers, body)
  super('the Online Payments platform returned an error response')
  @status_code = status_code
  @headers = if headers.nil? or headers.empty?
               {}
             else
               headers.inject({}) do |hash, header|
                 hash[header.name.downcase.to_sym] = header.dup.freeze
                 hash
               end
             end.freeze
  @body = body
end

Instance Attribute Details

#bodyString (readonly)

HTTP message body that was returned by the Online Payments platform

Returns:

  • (String)

    the current value of body



11
12
13
# File 'lib/onlinepayments/sdk/communication/response_exception.rb', line 11

def body
  @body
end

#headersArray<OnlinePayments::SDK::Communication::ResponseHeader> (readonly)

HTTP headers used in the response from the Online Payments platform

Returns:



11
12
13
# File 'lib/onlinepayments/sdk/communication/response_exception.rb', line 11

def headers
  @headers
end

#status_codeInteger (readonly)

HTTP status code that was returned by the Online Payments platform

Returns:

  • (Integer)

    the current value of status_code



11
12
13
# File 'lib/onlinepayments/sdk/communication/response_exception.rb', line 11

def status_code
  @status_code
end

Instance Method Details

#get_header(header_name) ⇒ Object

Returns the OnlinePayments::SDK::Communication::ResponseHeader that corresponds to the given header_name used in the HTTP response from the Online Payments platform, or nil if the header was not present in the response.



33
34
35
# File 'lib/onlinepayments/sdk/communication/response_exception.rb', line 33

def get_header(header_name)
  ResponseHeader.get_header(@headers, header_name)
end

#get_header_value(header_name) ⇒ Object

Returns the header value received that corresponds to the header named by header_name, or nil if header_name was not a header present in the HTTP response.



39
40
41
# File 'lib/onlinepayments/sdk/communication/response_exception.rb', line 39

def get_header_value(header_name)
  ResponseHeader.get_header_value(@headers, header_name)
end

#to_sObject



43
44
45
46
47
48
49
50
51
52
# File 'lib/onlinepayments/sdk/communication/response_exception.rb', line 43

def to_s
  str = super.to_s
  if @status_code > 0
    str += '; status_code=' + @status_code.to_s
  end
  if !@body.nil? && @body.length > 0
    str += "; response_body='" + @body + "'"
  end
  str.to_s
end