mirror of
https://github.com/Redume/Kekkai.git
synced 2025-02-23 04:33:11 +03:00
Some checks are pending
Create and publish a Docker image / build-and-push-server (push) Waiting to run
Create and publish a Docker image / build-and-push-chart (push) Waiting to run
Create and publish a Docker image / build-and-push-CR (push) Waiting to run
Deploy docs / deploy (push) Waiting to run
53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
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,
|
|
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'] : 0
|
|
);
|
|
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',
|
|
});
|
|
|
|
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,
|
|
message: err.message,
|
|
});
|
|
}
|
|
});
|
|
};
|