mirror of
https://github.com/Redume/Kekkai.git
synced 2025-02-23 12:43:12 +03:00
добавлен ответ с курсом валют
This commit is contained in:
parent
cce658783f
commit
12ce6b7522
2 changed files with 39 additions and 22 deletions
50
main.js
50
main.js
|
@ -1,29 +1,35 @@
|
|||
const fastify = require('fastify')({ logger: true });
|
||||
const schedule = require('node-schedule');
|
||||
const pool = require("./postgresql.js");
|
||||
const saveRate = require('./utils/saveRate.js');
|
||||
const response = require('./utils/errorResponse');
|
||||
|
||||
fastify.route({
|
||||
method: 'GET',
|
||||
url: '/',
|
||||
schema: {
|
||||
querystring: {
|
||||
|
||||
},
|
||||
response: {
|
||||
200: {
|
||||
schedule.scheduleJob('30 8 * * *', async function () {
|
||||
console.log('I save the currency data');
|
||||
await saveRate();
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
preHandler: async (res, reply) => {
|
||||
fastify.get('/api/getRate/', async function (req, reply) {
|
||||
if (!req.query?.codeCurrency) return response(
|
||||
400,
|
||||
'error',
|
||||
'codeCurrency parameter is required'
|
||||
);
|
||||
|
||||
},
|
||||
handler: async (res, reply) => {
|
||||
if (!req.query?.periodStart) return response(400, 'error', 'period parameter is required');
|
||||
|
||||
}
|
||||
})
|
||||
const data = await pool.query('SELECT * FROM currency WHERE from_currency = $1 AND date = $2', [
|
||||
req.query.codeCurrency,
|
||||
req.query.periodStart
|
||||
]).then(response('error', 500, 'Internal Server Error'));
|
||||
|
||||
try {
|
||||
await fastify.listen({ port: 3000 })
|
||||
} catch (err) {
|
||||
fastify.log.error(err)
|
||||
process.exit(1)
|
||||
}
|
||||
console.log(typeof data['rows'])
|
||||
|
||||
return data['rows'];
|
||||
});
|
||||
|
||||
fastify.listen({ port: 3000 }, err => {
|
||||
if (err) throw err
|
||||
console.log(`server listening on ${fastify.server.address().port}`)
|
||||
})
|
11
utils/errorResponse.js
Normal file
11
utils/errorResponse.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
function response(status, statusCode, message) {
|
||||
return {
|
||||
status: status,
|
||||
statusCode: status,
|
||||
data: {
|
||||
message: message
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = response;
|
Loading…
Add table
Reference in a new issue