WIP
This commit is contained in:
parent
3d9c95ba7f
commit
2e584c558d
3 changed files with 23 additions and 11 deletions
|
|
@ -785,14 +785,12 @@ exports.fetchPhoneTx = function fetchPhoneTx (phone) {
|
|||
})
|
||||
}
|
||||
|
||||
exports.fetchTx = db.fetchTx
|
||||
|
||||
exports.requestDispense = function requestDispense (tx) {
|
||||
return db.addDispenseRequest(tx)
|
||||
}
|
||||
|
||||
exports.fetchTx = db.fetchTx
|
||||
exports.cachedResponse = db.cachedResponse
|
||||
|
||||
exports.cacheResponse = db.cacheResponse
|
||||
|
||||
function sweepHD (row) {
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ exports.addDispenseRequest = function addDispenseRequest (tx) {
|
|||
const sql2 = 'insert into cash_out_actions (cash_out_txs_id, action) values ($1, $2)'
|
||||
|
||||
return db.none(sql2, [tx.id, 'dispenseRequested'])
|
||||
.then(() => ({dispense: true}))
|
||||
.then(() => ({dispense: true, txId: tx.id}))
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -408,6 +408,7 @@ exports.cachedResponse = function (deviceId, txId, path, method) {
|
|||
.then(() => ({}))
|
||||
.catch(err => {
|
||||
if (!isUniqueViolation(err)) throw err
|
||||
console.log('DEBUG22: %j', err)
|
||||
return db.one(sql, values)
|
||||
.then(row => ({body: row.body}))
|
||||
})
|
||||
|
|
|
|||
|
|
@ -285,25 +285,38 @@ function waitForDispense (req, res) {
|
|||
|
||||
function dispense (req, res) {
|
||||
const tx = req.body.tx
|
||||
const txId = tx.id
|
||||
const deviceId = getDeviceId(req)
|
||||
|
||||
return cachedResponse(deviceId, tx.id, req)
|
||||
.then(r => {
|
||||
console.log('DEBUG17')
|
||||
|
||||
return cachedResponse(deviceId, txId, req)
|
||||
.then(cached => {
|
||||
console.log('DEBUG18: %j', cached)
|
||||
|
||||
// Cache hit
|
||||
if (r.body && r.body.pendingRequest) return res.sendStatus(409)
|
||||
if (r.body) res.json(r.body)
|
||||
if (cached && cached.pendingRequest) return res.sendStatus(409)
|
||||
console.log('DEBUG18.5')
|
||||
if (cached) res.json(cached)
|
||||
|
||||
console.log('DEBUG19')
|
||||
|
||||
// No cache hit
|
||||
return plugins.requestDispense(tx)
|
||||
.then(r => {
|
||||
return cacheResponse(req, r)
|
||||
.then(() => res.json(r))
|
||||
.then(dispenseRec => {
|
||||
console.log('DEBUG20: %j', dispenseRec)
|
||||
|
||||
return cacheResponse(deviceId, txId, req, dispenseRec)
|
||||
.then(() => res.json(dispenseRec))
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('DEBUG21')
|
||||
|
||||
logger.error(err)
|
||||
res.sendStatus(500)
|
||||
})
|
||||
})
|
||||
.catch(err => logger.error(err))
|
||||
}
|
||||
|
||||
function init (localConfig) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue