From 1a53ce5fa1389dd9cc2c8a580d9e2e3e89a1eb04 Mon Sep 17 00:00:00 2001 From: Rafael Taranto Date: Tue, 6 Aug 2019 20:37:46 +0100 Subject: [PATCH] Take machineid into account for coinatmradar rates (#301) * Take machineid into account for coinatmradar rates * Remove test leftovers --- dev/coinatmradar.js | 4 ++-- lib/coinatmradar/coinatmradar.js | 21 +++++++++++---------- lib/plugins.js | 8 +++++++- lib/poller.js | 2 +- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/dev/coinatmradar.js b/dev/coinatmradar.js index dda77018..62161f25 100644 --- a/dev/coinatmradar.js +++ b/dev/coinatmradar.js @@ -6,9 +6,9 @@ require('../lib/settings-loader').loadLatest() const pi = plugins(settings) const config = settings.config - return pi.getRates() + return pi.getRawRates() .then(rates => { - return car.update({rates, config}) + return car.update({rates, config}, settings) .then(require('../lib/pp')('DEBUG100')) .catch(console.log) .then(() => process.exit()) diff --git a/lib/coinatmradar/coinatmradar.js b/lib/coinatmradar/coinatmradar.js index d7d713fb..78acf983 100644 --- a/lib/coinatmradar/coinatmradar.js +++ b/lib/coinatmradar/coinatmradar.js @@ -10,6 +10,7 @@ const mnemonicHelpers = require('../mnemonic-helpers') const configManager = require('../config-manager') const options = require('../options') const logger = require('../logger') +const plugins = require('../plugins') const TIMEOUT = 10000 const MAX_CONTENT_LENGTH = 2000 @@ -19,9 +20,9 @@ const STALE_INTERVAL = '2 minutes' module.exports = { update, mapRecord } -function mapCoin (info, deviceId, cryptoCode) { +function mapCoin (info, deviceId, settings, cryptoCode) { const config = info.config - const rates = info.rates[cryptoCode] || { cashIn: null, cashOut: null } + const rates = plugins(settings, deviceId).buildRates(info.rates)[cryptoCode] || { cashIn: null, cashOut: null } const cryptoConfig = configManager.scoped(cryptoCode, deviceId, config) const unscoped = configManager.unscoped(config) const showRates = unscoped.coinAtmRadarShowRates @@ -52,7 +53,7 @@ function mapIdentification (info, deviceId) { } } -function mapMachine (info, machineRow) { +function mapMachine (info, settings, machineRow) { const deviceId = machineRow.device_id const config = info.config const machineConfig = configManager.machineScoped(deviceId, config) @@ -66,7 +67,7 @@ function mapMachine (info, machineRow) { const cryptoCurrencies = machineConfig.cryptoCurrencies const identification = mapIdentification(info, deviceId) - const coins = _.map(_.partial(mapCoin, [info, deviceId]), cryptoCurrencies) + const coins = _.map(_.partial(mapCoin, [info, deviceId, settings]), cryptoCurrencies) return { machineId: deviceId, @@ -97,14 +98,14 @@ function mapMachine (info, machineRow) { } } -function getMachines (info) { +function getMachines (info, settings) { const sql = `select device_id, last_online, now() - last_online < $1 as stale from devices where display=TRUE and paired=TRUE order by created` return db.any(sql, [STALE_INTERVAL]) - .then(_.map(_.partial(mapMachine, [info]))) + .then(_.map(_.partial(mapMachine, [info, settings]))) } function sendRadar (data) { @@ -128,9 +129,9 @@ function sendRadar (data) { .then(r => console.log(r.status)) } -function mapRecord (info) { +function mapRecord (info, settings) { const timestamp = new Date().toISOString() - return Promise.all([getMachines(info), fs.readFile(options.mnemonicPath, 'utf8')]) + return Promise.all([getMachines(info, settings), fs.readFile(options.mnemonicPath, 'utf8')]) .then(([machines, mnemonic]) => { return { operatorId: computeOperatorId(mnemonicHelpers.toEntropyBuffer(mnemonic)), @@ -145,12 +146,12 @@ function mapRecord (info) { }) } -function update (info) { +function update (info, settings) { const config = configManager.unscoped(info.config) if (!config.coinAtmRadarActive) return Promise.resolve() - return mapRecord(info) + return mapRecord(info, settings) .then(sendRadar) .catch(err => logger.error(`Failure to update CoinATMRadar`, err)) } diff --git a/lib/plugins.js b/lib/plugins.js index 30458979..16c19da3 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -755,18 +755,24 @@ function plugins (settings, deviceId) { return machineLoader.getMachineNames(settings.config) } - function getRates () { + function getRawRates () { const config = configManager.unscoped(settings.config) const cryptoCodes = _.flatten(configManager.all('cryptoCurrencies', settings.config)) const fiatCode = config.fiatCurrency const tickerPromises = cryptoCodes.map(c => ticker.getRates(settings, fiatCode, c)) return Promise.all(tickerPromises) + } + + function getRates () { + return getRawRates() .then(buildRates) } return { getRates, + buildRates, + getRawRates, pollQueries, sendCoins, newAddress, diff --git a/lib/poller.js b/lib/poller.js index d7795e54..1e13f28c 100644 --- a/lib/poller.js +++ b/lib/poller.js @@ -61,7 +61,7 @@ function updateAndLoadSanctions () { function updateCoinAtmRadar () { const config = settings().config - return pi().getRates() + return pi().getRawRates() .then(rates => coinAtmRadar.update({ rates, config })) }