Sha256: 71b32b146abaf0375b6c8200d04d3a93fc019feb79cca3a8bb7d4022b8b2f04e
Contents?: true
Size: 948 Bytes
Versions: 7
Compression:
Stored size: 948 Bytes
Contents
# frozen_string_literal: true require 'oj' require_relative '../cache/redis_cache.rb' module EodFacade class Eod < ::EodFacade::Base class << self 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 def url_path(symbol) "/eod/#{symbol}" end def redis_key(symbol, from, to) "#{symbol}_#{from || ''}_#{to || ''}_eod" end end end end
Version data entries
7 entries across 7 versions & 1 rubygems