module Sesame2::Api

Constants

ENDPOINT_URL

Attributes

api_key[RW]
client_id[RW]

Public Instance Methods

call(method, path, query = nil, body = nil) click to toggle source
# File lib/sesame2/api.rb, line 23
def call(method, path, query = nil, body = nil)
  response = client.send(method) do |req|
    req.url path
    req.headers["Content-Type"] = "application/json"
    req.headers["x-api-key"] = @api_key unless @api_key.nil?
    req.params = query unless query.nil?
    req.body = body.to_json unless body.nil?
  end
  parse_response(response)
end
client() click to toggle source
# File lib/sesame2/api.rb, line 12
def client
  @client ||= Faraday.new(url: ENDPOINT_URL)
end
get(path, query = nil) click to toggle source
# File lib/sesame2/api.rb, line 34
def get(path, query = nil)
  call(:get, path, query, nil)
end
parse_response(response) click to toggle source
# File lib/sesame2/api.rb, line 16
def parse_response(response)
  parsed_response = response.headers["Content-Length"].to_i.positive? ? JSON.parse(response.body) : ""
  raise Error.new(response.status, parsed_response) if response.status >= 400

  parsed_response
end
post(path, query, body) click to toggle source
# File lib/sesame2/api.rb, line 38
def post(path, query, body)
  call(:post, path, query, body)
end