class Uktt::Http

An object for handling network requests

Public Class Methods

api_host() click to toggle source
# File lib/uktt/http.rb, line 36
def api_host
  return ENV['HOST'] if ENV['HOST']

  use_production ? Uktt::API_HOST_PROD : Uktt::API_HOST_LOCAL
end
new(host = nil, version = nil, debug = false) click to toggle source
# File lib/uktt/http.rb, line 7
def initialize(host = nil, version = nil, debug = false)
  @host = host || API_HOST_LOCAL
  @version = version || API_VERSION
  @conn = Faraday.new(url: @host) do |faraday|
    faraday.response(:logger) if debug
    faraday.adapter Faraday.default_adapter
  end
end
spec_version() click to toggle source
# File lib/uktt/http.rb, line 30
def spec_version
  return @version unless @version.nil?

  ENV['VER'] ? ENV['VER'].to_s : 'v1'
end
use_production() click to toggle source
# File lib/uktt/http.rb, line 26
def use_production
  !ENV['PROD'].nil? && ENV['PROD'].casecmp('true').zero?
end

Public Instance Methods

retrieve(resource, return_json = false) click to toggle source
# File lib/uktt/http.rb, line 16
def retrieve(resource, return_json = false)
  json = @conn.get do |request|
    request.url([@version, resource].join('/'))
  end.body
  return json if return_json

  JSON.parse(json, object_class: OpenStruct)
end