class BraspagRest::Request
Constants
- CAPTURE_ENDPOINT
- SALE_ENDPOINT
- VOID_ENDPOINT
Public Class Methods
capture(request_id, payment_id, amount)
click to toggle source
# File lib/braspag-rest/request.rb, line 61 def capture(request_id, payment_id, amount) config.logger.info("[BraspagRest][Capture] endpoint: #{capture_url(payment_id)}, amount: #{amount}") if config.log_enabled? execute_braspag_request do RestClient::Request.execute( method: :put, url: capture_url(payment_id), payload: { Amount: amount }.to_json, headers: default_headers.merge('RequestId' => request_id), timeout: config.request_timeout ) end end
get_sale(request_id, payment_id)
click to toggle source
# File lib/braspag-rest/request.rb, line 35 def get_sale(request_id, payment_id) config.logger.info("[BraspagRest][GetSale] endpoint: #{search_sale_url(payment_id)}") if config.log_enabled? execute_braspag_request do RestClient::Request.execute( method: :get, url: search_sale_url(payment_id), headers: default_headers.merge('RequestId' => request_id), timeout: config.request_timeout ) end end
get_sales_for_merchant_order_id(request_id, merchant_order_id)
click to toggle source
# File lib/braspag-rest/request.rb, line 48 def get_sales_for_merchant_order_id(request_id, merchant_order_id) config.logger.info("[BraspagRest][GetSale] endpoint: #{search_sales_for_merchant_order_id_url(merchant_order_id)}") if config.log_enabled? execute_braspag_request do RestClient::Request.execute( method: :get, url: search_sales_for_merchant_order_id_url(merchant_order_id), headers: default_headers.merge('RequestId' => request_id), timeout: config.request_timeout ) end end
void(request_id, payment_id, amount)
click to toggle source
# File lib/braspag-rest/request.rb, line 22 def void(request_id, payment_id, amount) config.logger.info("[BraspagRest][Void] endpoint: #{void_url(payment_id, amount)}") if config.log_enabled? execute_braspag_request do RestClient::Request.execute( method: :put, url: void_url(payment_id, amount), headers: default_headers.merge('RequestId' => request_id), timeout: config.request_timeout ) end end
Private Class Methods
capture_url(payment_id)
click to toggle source
# File lib/braspag-rest/request.rb, line 111 def capture_url(payment_id) sale_url + payment_id.to_s + CAPTURE_ENDPOINT end
config()
click to toggle source
# File lib/braspag-rest/request.rb, line 131 def config @config ||= BraspagRest.config end
default_headers()
click to toggle source
# File lib/braspag-rest/request.rb, line 122 def default_headers { 'Accept' => 'application/json', 'Content-Type' => 'application/json', 'MerchantId' => config.merchant_id, 'MerchantKey' => config.merchant_key } end
execute_braspag_request(&block)
click to toggle source
# File lib/braspag-rest/request.rb, line 77 def execute_braspag_request(&block) gateway_response = block.call BraspagRest::Response.new(gateway_response).tap do |response| config.logger.info("[BraspagRest][Response] gateway_response: #{response.parsed_body}") if config.log_enabled? end rescue RestClient::ResourceNotFound => e # Explicitly message due to Rest Client RestClient::NotFound normalization: # https://github.com/rest-client/rest-client/blob/v2.0.0/lib/restclient/exceptions.rb#L90 config.logger.error("[BraspagRest][Error] message: Resource Not Found, status: #{e.http_code}, body: #{e.http_body.inspect}") if config.log_enabled? raise rescue RestClient::RequestTimeout => e config.logger.error("[BraspagRest][Timeout] message: #{e.message}") if config.log_enabled? raise rescue RestClient::ExceptionWithResponse => e config.logger.warn("[BraspagRest][Error] message: #{e.message}, status: #{e.http_code}, body: #{e.http_body.inspect}") if config.log_enabled? BraspagRest::Response.new(e.response) rescue RestClient::Exception => e config.logger.error("[BraspagRest][Error] message: #{e.message}, status: #{e.http_code}, body: #{e.http_body.inspect}") if config.log_enabled? raise end
sale_url()
click to toggle source
# File lib/braspag-rest/request.rb, line 99 def sale_url config.url + SALE_ENDPOINT end
search_sale_url(payment_id)
click to toggle source
# File lib/braspag-rest/request.rb, line 107 def search_sale_url(payment_id) config.query_url + SALE_ENDPOINT + payment_id.to_s end
search_sales_for_merchant_order_id_url(merchant_order_id)
click to toggle source
# File lib/braspag-rest/request.rb, line 115 def search_sales_for_merchant_order_id_url(merchant_order_id) url = URI.parse(config.query_url) url.path = SALE_ENDPOINT url.query = "merchantOrderId=#{merchant_order_id}" url.to_s end
void_url(payment_id, amount)
click to toggle source
# File lib/braspag-rest/request.rb, line 103 def void_url(payment_id, amount) sale_url + payment_id.to_s + VOID_ENDPOINT + (amount ? "?amount=#{amount}" : '') end