Class: PayTrace::API::Gateway
- Inherits:
-
Object
- Object
- PayTrace::API::Gateway
- Defined in:
- lib/paytrace/api/gateway.rb
Overview
Helper for sending requests
Constant Summary collapse
- @@debug =
false
- @@last_request =
nil
- @@last_response =
nil
- @@last_response_object =
nil
- @@next_response =
nil
- @@raise_exceptions =
true
Instance Attribute Summary collapse
-
#connection ⇒ Object
:nodoc:.
Class Method Summary collapse
-
.debug=(enable) ⇒ Object
Sets or clears a debug flag to enable testing.
-
.last_request ⇒ Object
Returns the last request sent (as raw text).
-
.last_response ⇒ Object
Returns the last response received (as raw text).
-
.last_response_object ⇒ Object
Returns the last response object received.
-
.next_response=(next_response) ⇒ Object
Use this to set the raw text of the next response; only used when debug is true.
-
.raise_exceptions=(raise_exceptions) ⇒ Object
Sets or clears a flag to raise exceptions on receiving server errors.
-
.reset_trace ⇒ Object
Clears debug data.
Instance Method Summary collapse
-
#initialize(connection = nil) ⇒ Gateway
constructor
Creates a new gateway object, optionally using a supplied connection object.
-
#send_request(request, multi_value_response_fields = []) ⇒ Object
Sends a request object Params: * :multi_value_response_fields – response fields that may have multiple entries for the same key.
Constructor Details
#initialize(connection = nil) ⇒ Gateway
Creates a new gateway object, optionally using a supplied connection object
19 20 21 |
# File 'lib/paytrace/api/gateway.rb', line 19 def initialize(connection = nil) @connection = connection || PayTrace.configuration.connection end |
Instance Attribute Details
#connection ⇒ Object
:nodoc:
10 11 12 |
# File 'lib/paytrace/api/gateway.rb', line 10 def connection @connection end |
Class Method Details
.debug=(enable) ⇒ Object
Sets or clears a debug flag to enable testing
24 25 26 |
# File 'lib/paytrace/api/gateway.rb', line 24 def self.debug=(enable) @@debug = enable end |
.last_request ⇒ Object
Returns the last request sent (as raw text)
37 38 39 |
# File 'lib/paytrace/api/gateway.rb', line 37 def self.last_request @@last_request end |
.last_response ⇒ Object
Returns the last response received (as raw text)
42 43 44 |
# File 'lib/paytrace/api/gateway.rb', line 42 def self.last_response @@last_response end |
.last_response_object ⇒ Object
Returns the last response object received
47 48 49 |
# File 'lib/paytrace/api/gateway.rb', line 47 def self.last_response_object @@last_response_object end |
.next_response=(next_response) ⇒ Object
Use this to set the raw text of the next response; only used when debug is true
52 53 54 |
# File 'lib/paytrace/api/gateway.rb', line 52 def self.next_response=(next_response) @@next_response = next_response end |
.raise_exceptions=(raise_exceptions) ⇒ Object
Sets or clears a flag to raise exceptions on receiving server errors
57 58 59 |
# File 'lib/paytrace/api/gateway.rb', line 57 def self.raise_exceptions=(raise_exceptions) @@raise_exceptions = raise_exceptions end |
.reset_trace ⇒ Object
Clears debug data
29 30 31 32 33 34 |
# File 'lib/paytrace/api/gateway.rb', line 29 def self.reset_trace @@last_request = nil @@last_response = nil @@last_response_object = nil @@next_response = nil end |
Instance Method Details
#send_request(request, multi_value_response_fields = []) ⇒ Object
Sends a request object Params:
-
:multi_value_response_fields – response fields that may have multiple entries for the same key
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/paytrace/api/gateway.rb', line 64 def send_request(request, multi_value_response_fields = []) @@last_request = request.to_parms_string if @@debug unless (@@debug && @@next_response) res = @connection.post PayTrace.configuration.url, parmlist: request.to_parms_string raw_response = res.body else raw_response = @@next_response end @@last_response = raw_response response = PayTrace::API::Response.new(raw_response, multi_value_response_fields) @@last_response_object = response @@next_response = nil # just to be sure if @@raise_exceptions && response.has_errors? raise PayTrace::Exceptions::ErrorResponse.new(response.get_response()) else response end end |