class PaymentsApi::PaymentsController
Public Class Methods
PaymentsApi::BaseController::new
# File lib/payments_api/controllers/payments_controller.rb, line 9 def initialize(config, http_call_back: nil) super(config, http_call_back: http_call_back) end
Public Instance Methods
Approves a Payment
to be sent @param [String] bank_id Required parameter: Bank
ID (Routing Number) @param [Integer] payment_id Required parameter: ID of payment to approve @return [void] response from the API call
# File lib/payments_api/controllers/payments_controller.rb, line 174 def approve_payment(bank_id, payment_id) # Prepare query url. _query_builder = config.get_base_uri _query_builder << '/payments/{paymentId}/approve' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'paymentId' => { 'value' => payment_id, 'encode' => true } ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'bankId' => bank_id } # Prepare and execute HttpRequest. _request = config.http_client.post( _query_url, headers: _headers ) CustomHeaderAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise RequestErrorException.new( 'Error in Request', _response ) elsif _response.status_code == 403 raise APIException.new( 'Forbidden', _response ) elsif _response.status_code == 500 raise RequestErrorException.new( 'System Error', _response ) end validate_response(_response) end
Attempts to cancel a Payment
. Does not automatically cancel the linked Quote
. @param [String] bank_id Required parameter: Bank
ID (Routing Number) @param [Integer] payment_id Required parameter: ID of payment to cancel @return [void] response from the API call
# File lib/payments_api/controllers/payments_controller.rb, line 69 def cancel_payment(bank_id, payment_id) # Prepare query url. _query_builder = config.get_base_uri _query_builder << '/payments/{paymentId}' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'paymentId' => { 'value' => payment_id, 'encode' => true } ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'bankId' => bank_id } # Prepare and execute HttpRequest. _request = config.http_client.delete( _query_url, headers: _headers ) CustomHeaderAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise RequestErrorException.new( 'Error in Request', _response ) elsif _response.status_code == 403 raise APIException.new( 'Forbidden', _response ) elsif _response.status_code == 500 raise RequestErrorException.new( 'System Error', _response ) end validate_response(_response) end
Creates a new Payment
@param [String] bank_id Required parameter: Bank
ID (Routing Number) @param [Payment] body Required parameter: Create Payment
Body Data @return [Payment] response from the API call
# File lib/payments_api/controllers/payments_controller.rb, line 17 def create_payment(bank_id, body) # Prepare query url. _query_builder = config.get_base_uri _query_builder << '/payments' _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json', 'content-type' => 'application/json; charset=utf-8', 'bankId' => bank_id } # Prepare and execute HttpRequest. _request = config.http_client.post( _query_url, headers: _headers, parameters: body.to_json ) CustomHeaderAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise RequestErrorException.new( 'Error in Request', _response ) elsif _response.status_code == 403 raise APIException.new( 'Forbidden', _response ) elsif _response.status_code == 500 raise RequestErrorException.new( 'System Error', _response ) end validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) Payment.from_hash(decoded) end
Update the data for a Payment
before it is approved or sent @param [String] bank_id Required parameter: Bank
ID (Routing Number) @param [Integer] payment_id Required parameter: ID of payment to update @param [Payment] body Required parameter: Update Payment
Body Data @return [Payment] response from the API call
# File lib/payments_api/controllers/payments_controller.rb, line 118 def update_payment(bank_id, payment_id, body) # Prepare query url. _query_builder = config.get_base_uri _query_builder << '/payments/{paymentId}' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'paymentId' => { 'value' => payment_id, 'encode' => true } ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json', 'content-type' => 'application/json; charset=utf-8', 'bankId' => bank_id } # Prepare and execute HttpRequest. _request = config.http_client.put( _query_url, headers: _headers, parameters: body.to_json ) CustomHeaderAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise RequestErrorException.new( 'Error in Request', _response ) elsif _response.status_code == 403 raise APIException.new( 'Forbidden', _response ) elsif _response.status_code == 500 raise RequestErrorException.new( 'System Error', _response ) end validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) Payment.from_hash(decoded) end
Validates an IBAN and returns the bank account information @param [String] bank_id Required parameter: Bank
ID (Routing Number) @param [String] iban Required parameter: Currency that is required by the client, sell foreign currency in exchange for local currency @return [BankAccount] response from the API call
# File lib/payments_api/controllers/payments_controller.rb, line 223 def validate_iban(bank_id, iban) # Prepare query url. _query_builder = config.get_base_uri _query_builder << '/payments/get-bank-account-from-iban' _query_builder = APIHelper.append_url_with_query_parameters( _query_builder, 'iban' => iban ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json', 'bankId' => bank_id } # Prepare and execute HttpRequest. _request = config.http_client.get( _query_url, headers: _headers ) CustomHeaderAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise RequestErrorException.new( 'Error in Request', _response ) elsif _response.status_code == 403 raise APIException.new( 'Forbidden', _response ) elsif _response.status_code == 500 raise RequestErrorException.new( 'System Error', _response ) end validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) BankAccount.from_hash(decoded) end