class Paysafe::Api::BaseApi
Constants
- HEADERS
Public Class Methods
new(config)
click to toggle source
# File lib/paysafe/api/base_api.rb, line 14 def initialize(config) @config = config end
Protected Instance Methods
account_number()
click to toggle source
Needed for some API URLs
# File lib/paysafe/api/base_api.rb, line 21 def account_number @config.account_number end
http_client()
click to toggle source
# File lib/paysafe/api/base_api.rb, line 25 def http_client HTTP .headers(HEADERS) .timeout(@config.timeout || :null) .basic_auth(user: @config.api_key, pass: @config.api_secret) end
parse_response_body(body)
click to toggle source
# File lib/paysafe/api/base_api.rb, line 62 def parse_response_body(body) return nil if body.strip.empty? JSON.parse(body, symbolize_names: true)&.to_snake_case rescue JSON::ParserError end
perform_delete(path)
click to toggle source
# File lib/paysafe/api/base_api.rb, line 42 def perform_delete(path) response = http_client.delete("#{@config.api_base}#{path}") process_response(response) end
perform_get_with_object(path, klass)
click to toggle source
# File lib/paysafe/api/base_api.rb, line 37 def perform_get_with_object(path, klass) response = http_client.get("#{@config.api_base}#{path}") process_response(response, klass) end
perform_post_with_object(path, data, klass)
click to toggle source
# File lib/paysafe/api/base_api.rb, line 32 def perform_post_with_object(path, data, klass) response = http_client.post("#{@config.api_base}#{path}", json: data.to_camel_case) process_response(response, klass) end
perform_put_with_object(path, data, klass)
click to toggle source
# File lib/paysafe/api/base_api.rb, line 47 def perform_put_with_object(path, data, klass) response = http_client.put("#{@config.api_base}#{path}", json: data.to_camel_case) process_response(response, klass) end
process_response(response, klass=nil)
click to toggle source
# File lib/paysafe/api/base_api.rb, line 52 def process_response(response, klass=nil) data = parse_response_body(response.to_s) if response.status.success? klass&.new(data) else fail Error.from_response(data, response.code) end end