2024-07-30 18:01:35 +03:00
|
|
|
const pool = require('./postgresql.js');
|
2024-08-14 17:14:38 +03:00
|
|
|
const logger = require('../../logger/src/main.js');
|
2024-08-04 13:55:37 +03:00
|
|
|
|
2024-07-30 18:01:35 +03:00
|
|
|
async function getDay(from_currency, conv_currency, date) {
|
2024-08-17 16:40:20 +03:00
|
|
|
if (!from_currency || !conv_currency)
|
|
|
|
return new Error('fromCurrency and convCurrency are required');
|
2024-08-14 21:20:08 +03:00
|
|
|
else if (!date) return new Error('date is required');
|
2024-07-30 18:01:35 +03:00
|
|
|
|
2024-08-17 16:40:20 +03:00
|
|
|
const data = await pool.query(
|
|
|
|
'SELECT from_currency, conv_currency, date, rate FROM currency ' +
|
|
|
|
'WHERE from_currency = $1 AND conv_currency = $2 AND date = $3',
|
|
|
|
[from_currency.toUpperCase(), conv_currency.toUpperCase(), date],
|
|
|
|
);
|
2024-07-30 18:01:35 +03:00
|
|
|
|
2024-10-29 21:19:26 +03:00
|
|
|
if (data?.['rows'].length <= 0) return 'Missing data';
|
2024-07-30 18:01:35 +03:00
|
|
|
|
2024-08-14 21:20:08 +03:00
|
|
|
logger.debug(data['rows'][0]);
|
2024-08-11 17:22:13 +03:00
|
|
|
|
2024-07-30 18:01:35 +03:00
|
|
|
return data['rows'][0];
|
|
|
|
}
|
|
|
|
|
|
|
|
async function getPeriod(from_currency, conv_currency, start_date, end_date) {
|
2024-08-17 16:40:20 +03:00
|
|
|
if (!from_currency || !conv_currency)
|
|
|
|
return new Error('from_currency and conv_currency are required');
|
|
|
|
else if (!start_date || !end_date)
|
|
|
|
return new Error('start_date and end_date are required');
|
2024-07-30 18:01:35 +03:00
|
|
|
|
2024-08-17 16:40:20 +03:00
|
|
|
const data = await pool.query(
|
|
|
|
'SELECT * FROM currency WHERE ' +
|
|
|
|
'(date BETWEEN $3 AND $4) AND from_currency = $1 AND conv_currency = $2 ORDER BY date',
|
|
|
|
[
|
2024-07-31 14:45:12 +03:00
|
|
|
from_currency.toUpperCase(),
|
|
|
|
conv_currency.toUpperCase(),
|
2024-07-30 18:01:35 +03:00
|
|
|
start_date,
|
2024-08-17 16:40:20 +03:00
|
|
|
end_date,
|
|
|
|
],
|
|
|
|
);
|
2024-07-30 18:01:35 +03:00
|
|
|
|
2024-10-29 21:19:26 +03:00
|
|
|
if (data?.['rows'].length <= 0) return 'Missing data';
|
2024-07-30 18:01:35 +03:00
|
|
|
|
2024-08-14 21:20:08 +03:00
|
|
|
logger.debug(data['rows']);
|
2024-08-11 17:22:13 +03:00
|
|
|
|
2024-07-30 18:01:35 +03:00
|
|
|
return data['rows'];
|
|
|
|
}
|
|
|
|
|
2024-08-17 16:40:20 +03:00
|
|
|
module.exports = { getDay, getPeriod };
|