diff --git a/server/main.js b/server/main.js index 9295a9f..179eef0 100644 --- a/server/main.js +++ b/server/main.js @@ -20,74 +20,11 @@ const fastify = require('fastify')({ : false), }); -const rate = require('../shared/database/src/main.js'); -const chart = require('../chart/chart.js'); +const getChartRoute = require('./routes/getChart.js'); +const getRateRoute = require('./routes/getRate.js'); -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', - }); - } - - if (query['date']) - return rate.getDay( - query['from_currency'], - query['conv_currency'], - query['date'], - ); - else if (query['start_date'] && query['end_date']) - return 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', - }); -}); - -fastify.get('/api/getChart/', 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', - }); - } - if (!query['start_date'] || !query['end_date']) - return res.status(400).send({ - status: 400, - message: 'start_date and end_date is required', - }); - - const charts = await chart.gen_chart( - query['from_currency'], - query['conv_currency'], - query['start_date'], - query['end_date'], - ); - - if (config['currency']['chart']['save']) - chart.save_chart( - charts, - `${query['from_currency']} ${query['conv_currency']} ` + - `(${query['start_date']} - ${query['end_date']}).png`, - ); - - return res.status(200).send({ - status: 200, - message: charts, - }); -}); +fastify.register(getChartRoute); +fastify.register(getRateRoute); fastify.listen( { diff --git a/server/routes/getChart.js b/server/routes/getChart.js new file mode 100644 index 0000000..8f86ad5 --- /dev/null +++ b/server/routes/getChart.js @@ -0,0 +1,38 @@ +const config = require('../../shared/config/src/main.js')(); +const chart = require('../../chart/chart.js'); + +module.exports = async function GetChartRoute(fastify) { + fastify.get('/api/getChart/', 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', + }); + } + if (!query['start_date'] || !query['end_date']) + return res.status(400).send({ + status: 400, + message: 'start_date and end_date is required', + }); + + const charts = await chart.gen_chart( + query['from_currency'], + query['conv_currency'], + query['start_date'], + query['end_date'], + ); + + if (config['currency']['chart']['save']) + chart.save_chart( + charts, + `${query['from_currency']} ${query['conv_currency']} ` + + `(${query['start_date']} - ${query['end_date']}).png`, + ); + + return res.status(200).send({ + status: 200, + message: charts, + }); + }); +} \ No newline at end of file diff --git a/server/routes/getRate.js b/server/routes/getRate.js new file mode 100644 index 0000000..0a454dd --- /dev/null +++ b/server/routes/getRate.js @@ -0,0 +1,35 @@ +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', + }); + } + + if (query['date']) + return rate.getDay( + query['from_currency'], + query['conv_currency'], + query['date'], + ); + else if (query['start_date'] && query['end_date']) + return 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', + }); + }); +} \ No newline at end of file