-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathaccountTxSeq.js
65 lines (57 loc) · 1.48 KB
/
accountTxSeq.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
var Logger = require('../../lib/logger');
var log = new Logger({scope : 'account tx by sequence'});
var intMatch = /^\d+$/;
var hbase = require('../../lib/hbase')
var accountTxSeq = function (req, res, next) {
var options = {
account: req.params.address,
sequence: req.params.sequence,
binary: (/true/i).test(req.query.binary) ? true : false
};
if (!intMatch.test(options.sequence)) {
errorResponse({error: 'invalid sequence number', code: 400});
return;
}
log.info('ACCOUNT TX SEQ:', options.account, options.sequence);
hbase.getAccountTransaction(options, function(err, tx) {
if (err) {
errorResponse(err);
} else if (!tx) {
errorResponse({error: 'transaction not found', code: 404})
} else {
successResponse(tx);
}
});
/**
* errorResponse
* return an error response
* @param {Object} err
*/
function errorResponse (err) {
log.error(err.error || err);
if (err.code && err.code.toString()[0] === '4') {
res.status(err.code).json({
result: 'error',
message: err.error
});
} else {
res.status(500).json({
result: 'error',
message: 'unable to retrieve transaction'
});
}
}
/**
* successResponse
* return a successful response
* @param {Object} transactions
*/
function successResponse (tx) {
log.info('Transaction Found:', tx.hash);
res.json({
result: 'success',
transaction : tx
});
};
}
module.exports = accountTxSeq