This commit is contained in:
Josh Harvey 2016-03-27 18:47:08 +02:00
parent 9f31b31af8
commit fd4e5b5f34

View file

@ -12,10 +12,12 @@ module.exports = {
getFingerprint: getFingerprint
}
/*
// Make sure these are higher than polling interval
// or there will be a lot of errors
var STALE_TICKER = 180000
var STALE_BALANCE = 180000
*/
var pids = {}
var reboots = {}
@ -60,43 +62,12 @@ function poll (req, res) {
logger.debug('poll request from: %s', fingerprint)
var rateRec = plugins.getDeviceRate()
var balanceRec = plugins.getBalance()
var rates = buildRates()
var balances = buildBalances()
// `rateRec` and `balanceRec` are both objects, so there's no danger
// of misinterpreting rate or balance === 0 as 'Server initializing'.
if (!rateRec || !balanceRec) {
return res.json({err: 'Server initializing'})
}
var now = Date.now()
if (now - rateRec.timestamp > STALE_TICKER) {
return res.json({err: 'Stale ticker'})
}
if (now - balanceRec.timestamp > STALE_BALANCE) {
return res.json({err: 'Stale balance'})
}
var rate = rateRec.rates.ask
var fiatRate = rateRec.rates.bid || rate
if (rate === null) return res.json({err: 'No rate available'})
if (!fiatRate) logger.warn('No bid rate, using ask rate')
var fiatBalance = plugins.fiatBalance()
if (fiatBalance === null) {
logger.warn('No balance available.')
return res.json({err: 'No balance available'})
}
var config = plugins.getConfig()
var settings = config.exchanges.settings
var complianceSettings = settings.compliance
var fiatCommission = settings.fiatCommission || settings.commission
plugins.pollQueries(session(req), function (err, results) {
if (err) return logger.error(err)
@ -106,9 +77,9 @@ function poll (req, res) {
var response = {
err: null,
rate: rate * settings.commission,
fiatRate: fiatRate / fiatCommission,
fiat: fiatBalance,
rate: rates.BTC.cashIn,
fiatRate: rates.BTC.cashOut,
fiat: balances.BTC,
locale: config.brain.locale,
txLimit: parseInt(complianceSettings.maximum.limit, 10),
idVerificationEnabled: complianceSettings.idVerificationEnabled,