diff --git a/lib/machine-loader.js b/lib/machine-loader.js index 78c9a794..5d5b0682 100644 --- a/lib/machine-loader.js +++ b/lib/machine-loader.js @@ -492,6 +492,12 @@ function updateDiagnostics (deviceId, images) { .catch(err => logger.error('while running machine diagnostics: ', err)) } +const updateFailedQRScans = (deviceId, frames) => { + const directory = `${OPERATOR_DATA_DIR}/failedQRScans/${deviceId}/` + const filenames = _.map(no => `${no}.jpg`, _.range(0, _.size(frames))) + return updatePhotos(directory, _.zip(filenames, frames)) +} + function createPhoto (name, data, dir) { if (!data) { logger.error(`Diagnostics error: No data to save for ${name} photo`) @@ -506,9 +512,8 @@ function createPhoto (name, data, dir) { function updatePhotos (dir, photoPairs) { const dirname = path.join(dir) _.attempt(() => makeDir.sync(dirname)) - return Promise.all(_.map( - ([filename, data]) => createPhoto(filename, data, dirname), - photoPairs + return Promise.all(photoPairs.map( + ([filename, data]) => createPhoto(filename, data, dirname) )) } @@ -527,5 +532,6 @@ module.exports = { getMachineIds, emptyMachineUnits, refillMachineUnits, - updateDiagnostics + updateDiagnostics, + updateFailedQRScans } diff --git a/lib/routes.js b/lib/routes.js index 4165ea58..e5ac126b 100644 --- a/lib/routes.js +++ b/lib/routes.js @@ -32,6 +32,7 @@ const verifyUserRoutes = require('./routes/verifyUserRoutes') const verifyTxRoutes = require('./routes/verifyTxRoutes') const verifyPromoCodeRoutes = require('./routes/verifyPromoCodeRoutes') const probeRoutes = require('./routes/probeLnRoutes') +const failedQRScansRoutes = require('./routes/failedQRScans') const graphQLServer = require('./graphql/server') @@ -75,6 +76,7 @@ app.use('/cashbox', cashboxRoutes) app.use('/network', performanceRoutes) app.use('/diagnostics', diagnosticsRoutes) +app.use('/failedqrscans', failedQRScansRoutes) app.use('/verify_user', verifyUserRoutes) app.use('/verify_transaction', verifyTxRoutes) diff --git a/lib/routes/failedQRScans.js b/lib/routes/failedQRScans.js new file mode 100644 index 00000000..e484ef36 --- /dev/null +++ b/lib/routes/failedQRScans.js @@ -0,0 +1,14 @@ +const express = require('express') +const router = express.Router() + +const { updateFailedQRScans } = require('../machine-loader') + +function failedQRScans (req, res, next) { + return updateFailedQRScans(req.deviceId, req.body) + .then(() => res.status(200).send({ status: 'OK' })) + .catch(next) +} + +router.post('/', failedQRScans) + +module.exports = router