33 lines
809 B
JavaScript
33 lines
809 B
JavaScript
'use strict';
|
|
|
|
require('date-utils');
|
|
var winston = require('winston');
|
|
var logger = new (winston.Logger)({transports:[new (winston.transports.Console)()]});
|
|
|
|
var _tickerExchange;
|
|
var _api;
|
|
var _rates = {};
|
|
|
|
var _pollRate = function(currency) {
|
|
logger.info('polling for rate...');
|
|
_tickerExchange.ticker(currency, function(err, rate) {
|
|
if (err) return;
|
|
logger.info('Rate update:', rate);
|
|
_rates[currency] = {rate: rate, timestamp: new Date()};
|
|
});
|
|
};
|
|
|
|
exports.init = function(config, api, tickerExchange) {
|
|
_api = api;
|
|
_tickerExchange = tickerExchange;
|
|
|
|
_pollRate(config.settings.currency);
|
|
setInterval(function () {
|
|
_pollRate(config.settings.currency);
|
|
}, 60 * 1000);
|
|
};
|
|
|
|
exports.rate = function(currency) {
|
|
if (!_rates[currency]) return null;
|
|
return _rates[currency];
|
|
};
|