frankfurter/lib/versions/v1/quote/end_of_day.rb
BadMark d0a43e357a
Some checks failed
CI/CD Pipeline / test (push) Has been cancelled
CI/CD Pipeline / publish (push) Has been cancelled
CI/CD Pipeline / release (push) Has been cancelled
up
2026-05-21 01:38:14 -06:00

40 lines
844 B
Ruby

# frozen_string_literal: true
require "versions/v1/quote/base"
require "digest"
module Versions
class V1 < Roda
module Quote
class EndOfDay < Base
def formatted
{
amount:,
base:,
date: result.keys.first,
rates: result.values.first,
}
end
def cache_key
return if not_found?
Digest::MD5.hexdigest(result.keys.first)
end
private
def fetch_data
require "rate"
require "carry_forward"
date_val = date || Date.today
scope = Rate.where(provider: "ECB").where(date: (date_val - 14)..date_val)
scope = scope.only(*(symbols + [base])) if symbols
CarryForward.apply(scope.naked.all, date: date_val)
end
end
end
end
end