class Pexels::Client::Request

Attributes

api_key[R]
method[R]
params[R]
path[R]

Public Class Methods

new(api_key, path, method, params) click to toggle source
# File lib/pexels/client/request.rb, line 8
def initialize(api_key, path, method, params)
  @api_key = api_key
  @path = path
  @method = method
  @params = params
end

Public Instance Methods

call() click to toggle source
# File lib/pexels/client/request.rb, line 15
def call
  log_request if ENV['DEBUG']

  Response.new(self, execute)

rescue StandardError => exception
  raise Pexels::APIError.new(exception)
end

Private Instance Methods

execute() click to toggle source
# File lib/pexels/client/request.rb, line 26
def execute
  Requests.request(
    method,
    url,
    params: params,
    headers: headers
  )
end
headers() click to toggle source
# File lib/pexels/client/request.rb, line 39
def headers
  @headers = {
    'Authorization' => api_key,
    'User-Agent' => "Pexels/Ruby (#{Pexels::VERSION})"
  }.merge(Pexels.local_headers)
end
log_request() click to toggle source
# File lib/pexels/client/request.rb, line 46
def log_request
  puts "Requesting #{url}"
  puts " → params: #{params}"
  puts " → headers: #{headers}"
end
url() click to toggle source
# File lib/pexels/client/request.rb, line 35
def url
  @url ||= File.join(Pexels.api_base_url, path)
end