class Tikkie::Api::V1::Request

Make authenticated HTTP requests to the Tikkie API.

Public Class Methods

new(config) click to toggle source
# File lib/tikkie/api/v1/request.rb, line 11
def initialize(config)
  @config = config
end

Public Instance Methods

get(path, params = {}) click to toggle source
# File lib/tikkie/api/v1/request.rb, line 15
def get(path, params = {})
  uri = URI.parse(File.join(@config.api_url, path))
  uri.query = URI.encode_www_form(params) unless params.empty?

  request = Net::HTTP::Get.new(uri)
  request["Api-Key"] = @config.api_key
  request["Authorization"] = "Bearer #{access_token}"

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
    http.request(request)
  end

  response
end
post(path, params = {}) click to toggle source
# File lib/tikkie/api/v1/request.rb, line 30
def post(path, params = {})
  uri = URI.parse(File.join(@config.api_url, path))

  request = Net::HTTP::Post.new(uri)
  request["Api-Key"] = @config.api_key
  request["Authorization"] = "Bearer #{access_token}"
  request["Content-Type"] = "application/json"
  request.body = params.to_json

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
    http.request(request)
  end

  response
end

Private Instance Methods

access_token() click to toggle source
# File lib/tikkie/api/v1/request.rb, line 48
def access_token
  if @access_token.nil? || @access_token.expired?
    @authentication ||= Tikkie::Api::V1::Authentication.new(@config)
    @access_token = @authentication.authenticate
  end

  @access_token.token
end