module SPACEX::BaseRequest

Public Class Methods

info(path, klass = nil, params = {}) click to toggle source
# File lib/spacex/base_request.rb, line 8
def info(path, klass = nil, params = {})
  response_body = get(path, params).body
  process(response_body, klass)
end

Private Class Methods

conn(path) click to toggle source
# File lib/spacex/base_request.rb, line 43
def conn(path)
  Faraday.new(
    url: "#{SPACEX::ENDPOINT_URI}/#{path}",
    request: {
      params_encoder: Faraday::FlatParamsEncoder
    }
  ) do |connection|
    connection.use ::FaradayMiddleware::ParseJson
    connection.use Faraday::Response::RaiseError
    connection.adapter ::Faraday.default_adapter
  end
end
get(path, params) click to toggle source
# File lib/spacex/base_request.rb, line 15
def get(path, params)
  conn(path).get do |req|
    req.params = params
  end
end
process(response_body, klass) click to toggle source
# File lib/spacex/base_request.rb, line 21
def process(response_body, klass)
  if response_body.is_a? Array
    response_body.map do |element|
      processed_response(element, klass)
    end
  else
    processed_response(response_body, klass)
  end
end
processed_response(response, klass) click to toggle source
# File lib/spacex/base_request.rb, line 31
def processed_response(response, klass)
  if klass.nil?
    spacex_response(response)
  else
    klass.new(spacex_response(response))
  end
end
spacex_response(response) click to toggle source
# File lib/spacex/base_request.rb, line 39
def spacex_response(response)
  SPACEX::Response.new(response)
end