testing/fixing
This commit is contained in:
parent
59e93445ec
commit
1df6fe6ed1
5 changed files with 77 additions and 67 deletions
|
|
@ -83,7 +83,7 @@ exports.recordBill = function recordBill (session, rec, cb) {
|
|||
rec.toAddress,
|
||||
session.id,
|
||||
rec.deviceTime,
|
||||
rec.cryptoAtoms,
|
||||
rec.cryptoAtoms.toString(),
|
||||
rec.fiat
|
||||
]
|
||||
|
||||
|
|
@ -227,7 +227,7 @@ exports.pendingTxs = function pendingTxs (timeoutMS, cb) {
|
|||
var values = [timeoutS]
|
||||
query(client, sql, values, function (err, results) {
|
||||
done()
|
||||
cb(err, normalizeTxs(results))
|
||||
cb(err, normalizeTxs(results.rows))
|
||||
})
|
||||
})
|
||||
}
|
||||
|
|
@ -299,7 +299,7 @@ function insertTx (client, session, incoming, tx, cryptoAtoms, fiat, stage,
|
|||
incoming,
|
||||
session.fingerprint,
|
||||
tx.toAddress,
|
||||
cryptoAtoms,
|
||||
cryptoAtoms.toString(),
|
||||
tx.currencyCode,
|
||||
tx.cryptoCode,
|
||||
fiat,
|
||||
|
|
@ -490,12 +490,16 @@ function insertDispense (client, session, tx, cartridges, transactionId, cb) {
|
|||
exports.addIncomingPhone = function addIncomingPhone (session, tx, cb) {
|
||||
var sql = 'UPDATE transactions SET phone=$1 ' +
|
||||
'WHERE incoming=$2 AND device_fingerprint=$3 AND session_id=$4'
|
||||
connect(function (cerr, client, done) {
|
||||
if (cerr) return cb(cerr)
|
||||
var values = [tx.phone, true, session.fingerprint, session.id]
|
||||
query(client, sql, values, function (err) {
|
||||
done(err)
|
||||
cb(err)
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
connect(function (cerr, client, done) {
|
||||
if (cerr) return reject(cerr)
|
||||
var values = [tx.phone, true, session.fingerprint, session.id]
|
||||
query(client, sql, values, function (err) {
|
||||
done(err)
|
||||
if (err) return reject(err)
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
|
@ -518,56 +522,64 @@ function normalizeTxs (txs) {
|
|||
})
|
||||
}
|
||||
|
||||
exports.fetchPhoneTxs = function fetchPhoneTxs (phone, dispenseTimeout, cb) {
|
||||
exports.fetchPhoneTxs = function fetchPhoneTxs (phone, dispenseTimeout) {
|
||||
var sql = 'SELECT * FROM transactions ' +
|
||||
'WHERE phone=$1 AND dispensed=$2 ' +
|
||||
'AND (EXTRACT(EPOCH FROM (now() - created))) * 1000 < $1'
|
||||
|
||||
connect(function (cerr, client, done) {
|
||||
if (cerr) return cb(cerr)
|
||||
query(client, sql, [phone, false, dispenseTimeout], function (err, results) {
|
||||
done()
|
||||
if (err) return cb(err)
|
||||
cb(null, normalizeTxs(results.rows))
|
||||
return new Promise((resolve, reject) => {
|
||||
connect(function (cerr, client, done) {
|
||||
if (cerr) return reject(cerr)
|
||||
query(client, sql, [phone, false, dispenseTimeout], function (err, results) {
|
||||
done()
|
||||
if (err) return reject(err)
|
||||
resolve(normalizeTxs(results.rows))
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
exports.fetchTx = function fetchTx (session, cb) {
|
||||
exports.fetchTx = function fetchTx (session) {
|
||||
var sql = 'SELECT * FROM transactions ' +
|
||||
'WHERE device_fingerprint=$1 AND session_id=$2 ' +
|
||||
'ORDER BY created'
|
||||
'AND stage=$3 AND authority=$4'
|
||||
|
||||
connect(function (cerr, client, done) {
|
||||
if (cerr) return cb(cerr)
|
||||
query(client, sql, [session.fingerprint, session.id], function (err, results) {
|
||||
done()
|
||||
if (err) return cb(err)
|
||||
cb(null, normalizeTxs(results.rows))
|
||||
return new Promise((resolve, reject) => {
|
||||
connect(function (cerr, client, done) {
|
||||
if (cerr) return reject(cerr)
|
||||
var values = [session.fingerprint, session.id, 'initial_request', 'pending']
|
||||
query(client, sql, values, function (err, results) {
|
||||
done()
|
||||
if (err) return reject(err)
|
||||
resolve(normalizeTxs(results.rows)[0])
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
exports.addDispenseRequest = function addDispenseRequest (session, tx, cb) {
|
||||
connect(function (cerr, client, done) {
|
||||
if (cerr) return
|
||||
exports.addDispenseRequest = function addDispenseRequest (session, tx) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connect(function (cerr, client, done) {
|
||||
if (cerr) return reject(cerr)
|
||||
|
||||
const originalSession = {id: tx.sessionId, fingerprint: session.fingerprint}
|
||||
async.waterfall([
|
||||
async.apply(updateDispense, client, true),
|
||||
async.apply(insertIncoming, client, originalSession, tx, 0, tx.fiat,
|
||||
'dispense', 'pending')
|
||||
], function (err) {
|
||||
done()
|
||||
if (err) logger.error(err)
|
||||
const originalSession = {id: tx.sessionId, fingerprint: session.fingerprint}
|
||||
async.waterfall([
|
||||
async.apply(updateDispense, client, originalSession, true),
|
||||
async.apply(insertIncoming, client, originalSession, tx, 0, tx.fiat,
|
||||
'dispense', 'pending')
|
||||
], function (err) {
|
||||
done()
|
||||
if (err) return reject(err)
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function updateDispense (client, session, dispensed, cb) {
|
||||
var sql = 'UPDATE transactions SET dispense=$1 ' +
|
||||
var sql = 'UPDATE transactions SET dispensed=$1 ' +
|
||||
'WHERE stage=$2 AND authority=$3 AND device_fingerprint=$4 AND session_id=$5'
|
||||
var values = [dispensed, 'initial_request', 'deposit', session.fingerprint, session.id]
|
||||
var values = [dispensed, 'initial_request', 'pending', session.fingerprint, session.id]
|
||||
query(client, sql, values, function (err) {
|
||||
cb(err)
|
||||
})
|
||||
|
|
@ -652,18 +664,24 @@ exports.machineEvents = function machineEvents (cb) {
|
|||
})
|
||||
}
|
||||
|
||||
function singleQuotify (item) { return '\'' + item + '\'' }
|
||||
|
||||
exports.fetchOpenTxs = function fetchOpenTxs (statuses, age, cb) {
|
||||
var sql = 'SELECT *, (EXTRACT(EPOCH FROM (now() - created))) * 1000 AS age ' +
|
||||
var _statuses = '(' + statuses.map(singleQuotify).join(',') + ')'
|
||||
|
||||
var sql = 'SELECT * ' +
|
||||
'FROM transactions ' +
|
||||
'WHERE incoming=$1 age<$2 AND status IN $3'
|
||||
'WHERE incoming=$1 AND ((EXTRACT(EPOCH FROM (now() - created))) * 1000)<$2 ' +
|
||||
'AND stage=$3 AND authority=$4 ' +
|
||||
'AND status IN ' + _statuses
|
||||
|
||||
connect(function (cerr, client, done) {
|
||||
if (cerr) return cb(cerr)
|
||||
|
||||
query(client, sql, [true, age, statuses], function (err, results) {
|
||||
query(client, sql, [true, age, 'initial_request', 'pending'], function (err, results) {
|
||||
done()
|
||||
if (err) return cb(err)
|
||||
cb(null, normalizeTxs(results))
|
||||
cb(null, normalizeTxs(results.rows))
|
||||
})
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue