18F/hhs-acf-uc-dashboard

View on GitHub
app/models/api_client.rb

Summary

Maintainability
A
0 mins
Test Coverage
class ApiClient
  attr_reader :base_url

  def initialize(base_url=nil)
    @base_url = base_url || ENV['API_URL']
  end

  def daily_statistics(date=nil)
    date ||= Date.today
    get_json("daily_statistics/count?on=#{View::DateTimeFormatter.new(date).database_date}")
  end

  private

  def get_json(path)
    response = RestClient.get("#{base_url}/#{path}", headers)
    JSON.parse(response.body)
  end

  def headers
    {Authorization: "Token #{token}"}
  end

  def token
    JWT.encode({:role => 'user role', :exp => Time.now.to_i + 86400}, hmac_secret, "HS512")
  end

  def hmac_secret
    ENV["AUTH_HMAC_SECRET"]
  end
end