flosight-api/server/lib/api/currency.js
2017-08-16 14:13:18 -04:00

53 lines
1.1 KiB
JavaScript

const config = require('../../config');
const logger = require('../logger');
const request = require('request');
// Retrieve the configured endpoint's ticker rate at a
// set interval
const refreshInterval = config.api.currency_refresh >= 1 ?
config.api.currency_refresh * 1000 :
60 * 1000;
let lastRate = 0;
init();
function init() {
getRate();
setInterval(() => {
getRate();
}, refreshInterval);
}
// Make the request to the remote API
function getRate() {
request(config.api.ticker_url, (err, res, body) => {
if (err) {
logger.log('error',
`${err}`);
}
try {
const ticker = JSON.parse(body);
lastRate = ticker.last;
logger.log('debug',
`getRate: ${lastRate}`);
} catch (error) {
logger.log('error',
`getRate: ${error}`);
}
});
}
module.exports = function currencyAPI(app) {
// Return the ticker price
app.get('/currency', (req, res) => {
const data = {};
data[config.api.ticker_prop] = lastRate;
res.json({
data,
});
});
};