class Omdb::Api::Request

Constants

BASE_URI
PARAMS_MAP

Public Class Methods

new(client, request_method, params) click to toggle source
# File lib/omdb/api/request.rb, line 10
def initialize(client, request_method, params)
  @configuration = client.configuration
  @request_method = request_method
  @headers = _set_headers(params.delete(:headers))
  @params = _set_params(params.delete(:query_params))
end

Public Instance Methods

perform() click to toggle source
# File lib/omdb/api/request.rb, line 17
def perform
  _http_client.public_send(
    @request_method,
    BASE_URI,
    headers: @headers,
    query: @params
  )
end

Private Instance Methods

_http_client() click to toggle source
# File lib/omdb/api/request.rb, line 56
def _http_client
  HTTParty
end
_set_headers(headers) click to toggle source
# File lib/omdb/api/request.rb, line 44
def _set_headers(headers)
  key_translate = {
    content_type: 'Content-Type'
  }

  translated_headers = headers.each_with_object({}) do |(k, v), o|
    o[key_translate[k]] = v
  end

  { 'Content-Type' => 'application/json' }.merge(translated_headers)
end
_set_params(params) click to toggle source
# File lib/omdb/api/request.rb, line 38
def _set_params(params)
  {}.tap do |p|
    params.each { |k, v| p[PARAMS_MAP[k]] = v }
  end.merge({ apikey: @configuration.api_key })
end