class TimeDoctor::Worker

Constants

ENTRY

Attributes

config[R]
conn[R]

Public Class Methods

new(config) click to toggle source
# File lib/timedoctor/worker.rb, line 7
def initialize(config)
  @config = config
  @conn   = Faraday.new(url: ENTRY)
end

Public Instance Methods

exchange(method, url, params = {}) click to toggle source
# File lib/timedoctor/worker.rb, line 12
def exchange(method, url, params = {})
  raise EmptyAccessToken unless config[:access_token]

  params[:access_token] = config[:access_token]
  params[:_format]      = :json

  response = conn.public_send method, url, params

  case response.status
  when 200
    JSON.parse(response.body, symbolize_names: true)
  when 401
    exchange(method, url, params) if Token.new(config).refresh
  else
    raise UnknownError, response
  end
end