- GET http://10.10.10.1:10000/rates?onDate=07.10.2022 - получение курсов валют, на дату из цб
- GET http://10.10.10.1:10000/exchange?from=USD&to=RUB&onDate=07.10.2022 получение курса на дату из базы
- GET http://10.10.10.1:10000/rush - скачивание всех курсов из цб
- Склонировать репозиторий
- выполнить
cp .env.example .env
- docker-compose up -d --build
ЦБ присылает 34 пары курсов валют. Из них получаются обратные курсы путем 1 / exchangeRate
После происходит триангуляция курсов путем sql запроса вида:
insert into currency_rates (currency_from, currency_to, created_at, on_date, exchange_rate)
select pair.currency_from, pair.currency_to, pair.created_at, pair.on_date, pair.exchange_rate
from (
select f.currency_from, t.currency_from as currency_to, f.created_at, f.on_date, (f.exchange_rate / t.exchange_rate) as exchange_rate
from currency_rates f, currency_rates t
where f.on_date = t.on_date
and f.currency_to = t.currency_to
) pair
LEFT OUTER JOIN currency_rates cr
ON (
pair.on_date = cr.on_date
AND pair.currency_from = cr.currency_from
AND pair.currency_to = cr.currency_to
)
where pair.on_date = '2022-10-07'
group by pair.currency_from, pair.currency_to
- приложение в докер