Merge pull request #249 from isocolsky/feature/get_txs_bulk
Feature/get txs bulk
This commit is contained in:
commit
449977b74f
@ -4,9 +4,12 @@
|
|||||||
* Module dependencies.
|
* Module dependencies.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var Address = require('../models/Address'),
|
var _ = require('lodash');
|
||||||
common = require('./common'),
|
var Address = require('../models/Address');
|
||||||
async = require('async');
|
var common = require('./common');
|
||||||
|
var async = require('async');
|
||||||
|
|
||||||
|
var tDb = require('../../lib/TransactionDb').default();
|
||||||
|
|
||||||
var getAddr = function(req, res, next) {
|
var getAddr = function(req, res, next) {
|
||||||
var a;
|
var a;
|
||||||
@ -89,6 +92,43 @@ exports.multiutxo = function(req, res, next) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.multitxs = function(req, res, next) {
|
||||||
|
|
||||||
|
function processTxs(txs, cb) {
|
||||||
|
txs = _.uniq(_.flatten(txs));
|
||||||
|
var transactions = [];
|
||||||
|
async.each(txs, function (tx, callback) {
|
||||||
|
tDb.fromIdWithInfo(tx, function(err, tx) {
|
||||||
|
if (err) console.log(err);
|
||||||
|
if (tx && tx.info) {
|
||||||
|
transactions.push(tx.info);
|
||||||
|
}
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
}, function (err) {
|
||||||
|
if (err) return cb(err);
|
||||||
|
return cb(null, transactions);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var as = getAddrs(req, res, next);
|
||||||
|
if (as) {
|
||||||
|
var txs = [];
|
||||||
|
async.each(as, function(a, callback) {
|
||||||
|
a.update(function(err) {
|
||||||
|
if (err) callback(err);
|
||||||
|
txs = txs.concat(a.transactions);
|
||||||
|
callback();
|
||||||
|
}, {ignoreCache: req.param('noCache')});
|
||||||
|
}, function(err) { // finished callback
|
||||||
|
if (err) return common.handleErrors(err, res);
|
||||||
|
processTxs(txs, function (err, transactions) {
|
||||||
|
if (err) return common.handleErrors(err, res);
|
||||||
|
res.jsonp(transactions);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
exports.balance = function(req, res, next) {
|
exports.balance = function(req, res, next) {
|
||||||
var a = getAddr(req, res, next);
|
var a = getAddr(req, res, next);
|
||||||
|
|||||||
@ -33,6 +33,8 @@ module.exports = function(app) {
|
|||||||
app.get(apiPrefix + '/addr/:addr/utxo', addresses.utxo);
|
app.get(apiPrefix + '/addr/:addr/utxo', addresses.utxo);
|
||||||
app.get(apiPrefix + '/addrs/:addrs/utxo', addresses.multiutxo);
|
app.get(apiPrefix + '/addrs/:addrs/utxo', addresses.multiutxo);
|
||||||
app.post(apiPrefix + '/addrs/utxo', addresses.multiutxo);
|
app.post(apiPrefix + '/addrs/utxo', addresses.multiutxo);
|
||||||
|
app.get(apiPrefix + '/addrs/:addrs/txs', addresses.multitxs);
|
||||||
|
app.post(apiPrefix + '/addrs/txs', addresses.multitxs);
|
||||||
|
|
||||||
// Address property routes
|
// Address property routes
|
||||||
app.get(apiPrefix + '/addr/:addr/balance', addresses.balance);
|
app.get(apiPrefix + '/addr/:addr/balance', addresses.balance);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user