class Square::BaseApi

BaseApi.

Attributes

config[RW]
http_call_back[RW]

Public Class Methods

new(config, http_call_back: nil) click to toggle source
# File lib/square/api/base_api.rb, line 7
def initialize(config, http_call_back: nil)
  @config = config
  @http_call_back = http_call_back

  @global_headers = {
    'user-agent' => get_user_agent,
    'Square-Version' => config.square_version
  }
end

Public Instance Methods

execute_request(request, binary: false) click to toggle source
# File lib/square/api/base_api.rb, line 23
def execute_request(request, binary: false)
  @http_call_back&.on_before_request(request)

  APIHelper.clean_hash(request.headers)
  request.headers.merge!(@global_headers)
  request.headers.merge!(config.additional_headers) unless config.additional_headers.nil?

  response = if binary
               config.http_client.execute_as_binary(request)
             else
               config.http_client.execute_as_string(request)
             end
  @http_call_back&.on_after_response(response)

  response
end
get_user_agent() click to toggle source
# File lib/square/api/base_api.rb, line 40
def get_user_agent
  user_agent = 'Square-Ruby-SDK/19.0.0.20220420 ({api-version}) {engine}/{engine-version} ({os-info}) {detail}'
  user_agent['{engine}'] = RUBY_ENGINE
  user_agent['{engine-version}'] = RUBY_ENGINE_VERSION
  user_agent['{os-info}'] = RUBY_PLATFORM
  user_agent['{api-version}'] = config.square_version
  if config.user_agent_detail.nil? || config.user_agent_detail.empty?
    user_agent = user_agent.gsub('{detail}', '')
  else
    user_agent['{detail}'] = ERB::Util.url_encode(config.user_agent_detail.to_s)
  end
  user_agent
end
validate_parameters(args) click to toggle source
# File lib/square/api/base_api.rb, line 17
def validate_parameters(args)
  args.each do |_name, value|
    raise ArgumentError, "Required parameter #{_name} cannot be nil." if value.nil?
  end
end