class Safelylaunch::HttpConnection

Attributes

api_token[R]
cache_time[R]
connection[R]
host[R]
logger[R]

Public Class Methods

new(api_token:, logger: Logger.new(STDOUT), cache_time: nil, host: 'http://localhost:2300') click to toggle source
# File lib/safelylaunch/http_connection.rb, line 9
def initialize(api_token:, logger: Logger.new(STDOUT), cache_time: nil, host: 'http://localhost:2300')
  @api_token = api_token
  @logger = logger
  @host = host
  @cache_time = cache_time

  @cache = HttpCache.new

  @connection = Faraday.new(url: host, request: { timeout: 10 }) do |conn|
    conn.response :json, content_type: %r{application/json}, parser_options: { symbolize_names: true }
    conn.response :logger, logger

    conn.adapter  Faraday.default_adapter
  end
end

Public Instance Methods

get(key) click to toggle source
# File lib/safelylaunch/http_connection.rb, line 25
def get(key)
  cache_time ? cached_check_toggle(key) : check_toggle(key)
end

Private Instance Methods

cached_check_toggle(key) click to toggle source
# File lib/safelylaunch/http_connection.rb, line 31
def cached_check_toggle(key)
  @cache.get(key) || @cache.put(key, check_toggle(key), cache_time)
end
check_toggle(key) click to toggle source
# File lib/safelylaunch/http_connection.rb, line 35
def check_toggle(key)
  response = connection.get('/api/v1/check', token: api_token, key: key)
  response.body
end