Kekkai/server/routes/getRate.js

54 lines
1.9 KiB
JavaScript
Raw Normal View History

const rate = require('../../shared/database/src/main.js');
module.exports = async function getRateRoute(fastify) {
fastify.get('/api/getRate/', async function (req, res) {
const query = req.query;
if (!query['from_currency'] || !query['conv_currency']) {
return res.status(400).send({
status: 400,
2024-10-21 20:39:06 +03:00
message:
'The from_currency and conv_currency fields are required',
});
}
let rate_res;
try {
if (query['date'])
rate_res = await rate.getDay(
query['from_currency'],
query['conv_currency'],
query['date'],
query['conv_amount'] ? query['conv_amount'] : 1
);
else if (query['start_date'] && query['end_date'])
rate_res = await rate.getPeriod(
query['from_currency'],
query['conv_currency'],
query['start_date'],
query['end_date'],
);
else
return res.status(400).send({
status: 400,
message:
'The date or period field is incorrect. ' +
"There must be fields 'date' or 'start_date' and 'end_date'. " +
'Read more in the documentation',
});
2024-11-15 21:07:48 +03:00
if (typeof rate_res !== 'object')
return res.status(400).send({
status: 400,
message: rate_res,
});
else return res.status(200).send(rate_res);
} catch (err) {
fastify.log.error(err.message);
res.status(500).send({
status: 500,
2024-11-15 21:07:48 +03:00
message: err.message,
});
}
});
2024-10-21 20:39:06 +03:00
};