class SbrfMerchant::Api::Client

Attributes

host[R]
http_client[R]
json_parser[R]
password[R]
request_body_preprocessor[R]
response_body_postprocessor[R]
uri_builder[R]
user_name[R]

Public Class Methods

new( user_name:, password:, host:, response_body_postprocessor: SBRF::Api::Response::BodyPostProcessor.new, request_body_preprocessor: SBRF::Api::Request::BodyPreProcessor.new, http_client: SBRF::Utils::Http::Client.new, uri_builder: SBRF::Api::Request::UriBuilder.new, json_parser: SBRF::Utils::JSON::ToHashParser.new ) click to toggle source
# File lib/sbrf_merchant/api/client.rb, line 21
def initialize(
  user_name:,
  password:,
  host:,
  response_body_postprocessor: SBRF::Api::Response::BodyPostProcessor.new,
  request_body_preprocessor: SBRF::Api::Request::BodyPreProcessor.new,
  http_client: SBRF::Utils::Http::Client.new,
  uri_builder: SBRF::Api::Request::UriBuilder.new,
  json_parser: SBRF::Utils::JSON::ToHashParser.new
)
  @user_name = user_name
  @password = password
  @host = host
  @response_body_postprocessor = response_body_postprocessor
  @http_client = http_client
  @uri_builder = uri_builder
  @request_body_preprocessor = request_body_preprocessor
  @json_parser = json_parser
end

Public Instance Methods

call(method_name, **params) click to toggle source
# File lib/sbrf_merchant/api/client.rb, line 41
def call(method_name, **params)
  prepared_params = request_body_preprocessor.call(auth_params.merge(params))
  uri = uri_builder.call(host, method_name)
  response = http_client.call(uri, prepared_params)
  parsed_body = json_parser.call(response.body)

  response_body_postprocessor.call(parsed_body)
end

Private Instance Methods

auth_params() click to toggle source
# File lib/sbrf_merchant/api/client.rb, line 52
def auth_params
  { user_name: user_name, password: password }
end