mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-07 22:45:20 +02:00
Handle missing exchange rate provider, allow fallback for missing rates (#955)
* Clean up exchange rate logic * Remove stale method
This commit is contained in:
parent
bef335c631
commit
6767aaed1d
20 changed files with 383 additions and 609 deletions
|
@ -72,10 +72,10 @@ class Account::Balance::Calculator
|
|||
end
|
||||
|
||||
def convert_balances_to_family_currency(balances)
|
||||
rates = ExchangeRate.get_rates(
|
||||
account.currency,
|
||||
account.family.currency,
|
||||
calc_start_date..Date.current
|
||||
rates = ExchangeRate.find_rates(
|
||||
from: account.currency,
|
||||
to: account.family.currency,
|
||||
start_date: calc_start_date
|
||||
).to_a
|
||||
|
||||
# Abort conversion if some required rates are missing
|
||||
|
@ -84,8 +84,9 @@ class Account::Balance::Calculator
|
|||
return []
|
||||
end
|
||||
|
||||
balances.map.with_index do |balance, index|
|
||||
converted_balance = balance[:balance] * rates[index].rate
|
||||
balances.map do |balance|
|
||||
rate = rates.find { |r| r.date == balance[:date] }
|
||||
converted_balance = balance[:balance] * rate&.rate
|
||||
{ date: balance[:date], balance: converted_balance, currency: account.family.currency, updated_at: Time.current }
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue