UNPKG

insight-api-terracoin

Version:

A Terracoin blockchain REST and web socket API service for Bitcore Node.

48 lines (41 loc) 1.28 kB
'use strict'; var request = require('request'); function CurrencyController(options) { this.node = options.node; var refresh = options.currencyRefresh || CurrencyController.DEFAULT_CURRENCY_DELAY; this.currencyDelay = refresh * 60000; this.exchange_rates = { trc_usd: 0.00, btc_usd: 0.00, btc_trc: 0.00 }; this.timestamp = Date.now(); } CurrencyController.DEFAULT_CURRENCY_DELAY = 10; CurrencyController.prototype.index = function(req, res) { var self = this; var currentTime = Date.now(); if (self.exchange_rates.trc_usd === 0.00 || currentTime >= (self.timestamp + self.currencyDelay)) { self.timestamp = currentTime; request('https://services.terracoin.io/api/v1/public', function(err, response, body) { if (err) { self.node.log.error(err); } if (!err && response.statusCode === 200) { var response = JSON.parse(body); self.exchange_rates = response.exchange_rates; self.exchange_rates.bitstamp = response.exchange_rates.trc_usd; // backwards compatibility } res.jsonp({ status: 200, data: self.exchange_rates }); }); } else { res.jsonp({ status: 200, data: self.exchange_rates }); } }; module.exports = CurrencyController;