class EodFacade::Eod

Public Class Methods

call(symbol, params = {}) click to toggle source
# File lib/eod_facade/eod.rb, line 9
def call(symbol, params = {})
  unless Cache::RedisCache.get(redis_key(symbol, params[:from], params[:to]))
    response = make_request(url_path(symbol), params.merge(fmt: 'json'))
    
    unless response.success?
      raise ArgumentError, "Error fetching end of day data for #{symbol}"
    end

    Cache::RedisCache.set(
      redis_key(symbol, params[:from], params[:to]),
      response.parsed_response.to_json
    )
  end

  Oj.load(Cache::RedisCache.get(redis_key(symbol, params[:from], params[:to])))
end

Private Class Methods

redis_key(symbol, from, to) click to toggle source
# File lib/eod_facade/eod.rb, line 32
def redis_key(symbol, from, to)
  "#{symbol}_#{from || ''}_#{to || ''}_eod"
end
url_path(symbol) click to toggle source
# File lib/eod_facade/eod.rb, line 28
def url_path(symbol)
  "/eod/#{symbol}"
end