class Pnut::Client

Public Class Methods

new(authorization_token: nil) click to toggle source
# File lib/pnut.rb, line 12
def initialize(authorization_token: nil)
  @token = authorization_token
  @connection = Faraday.new("https://api.pnut.io/")
end

Public Instance Methods

request(endpoint, method: "GET", params: nil, data: nil, raw_response: false, json: true) click to toggle source
# File lib/pnut.rb, line 17
def request(endpoint, method: "GET", params: nil, data: nil, raw_response: false, json: true)
  prepared_endpoint = "/v0#{endpoint}"

  if params
    uri = Addressable::URI.new
    uri.query_values = params
    prepared_endpoint += "?#{uri.query}"
  end

  response = @connection.send(method.downcase.to_sym, prepared_endpoint) do |req|
    req.url prepared_endpoint

    req.headers["Content-Type"] = "application/json" if json
    req.headers["Authorization"] = "Bearer #{@token}" if @token

    if json
      req.body = data.to_json if data
    else
      req.body = data if data
    end
  end

  raw_response ? response.body : JSON.parse(response.body, object_class: OpenStruct)
end