class BalihooLpcClient::Request::ApiBase
Attributes
params[RW]
Public Class Methods
new(api:, params:)
click to toggle source
Calls superclass method
# File lib/balihoo_lpc_client/request/api_base.rb, line 6 def initialize(api:, params:) super(api: api) self.params = params end
Private Instance Methods
handle_response(response:, klass:, mappable: true)
click to toggle source
# File lib/balihoo_lpc_client/request/api_base.rb, line 46 def handle_response(response:, klass:, mappable: true) if multiple_locations? multiple_locations(response: response, klass: klass, mappable: mappable) else single_location(response: response, klass: klass, mappable: mappable) end end
locations_expected?()
click to toggle source
# File lib/balihoo_lpc_client/request/api_base.rb, line 21 def locations_expected? config.location_key.nil? || config.location_key.strip.empty? end
multiple_locations(response:, klass:, mappable:)
click to toggle source
# File lib/balihoo_lpc_client/request/api_base.rb, line 54 def multiple_locations(response:, klass:, mappable:) response.inject({}) do |h, pair| if mappable h.merge({ pair[0] => pair[1].map { |v| klass.new(v) } }) else h.merge({ pair[0] => klass.new(pair[1]) }) end end end
multiple_locations?()
click to toggle source
# File lib/balihoo_lpc_client/request/api_base.rb, line 13 def multiple_locations? if locations_expected? params[:locations].count > 1 else false end end
opts()
click to toggle source
# File lib/balihoo_lpc_client/request/api_base.rb, line 25 def opts { headers: { 'X-ClientId' => config.client_id, 'X-ClientApiKey' => config.client_api_key }, query: sanitized_params } end
sanitized_params()
click to toggle source
# File lib/balihoo_lpc_client/request/api_base.rb, line 35 def sanitized_params if locations_expected? sanitized = params.dup sanitized[:locations] = sanitized[:locations].join(?,) sanitized else params.delete(:locations) params end end
single_location(response:, klass:, mappable:)
click to toggle source
# File lib/balihoo_lpc_client/request/api_base.rb, line 64 def single_location(response:, klass:, mappable:) if mappable response.map do |result| klass.new result end else klass.new response end end