need new mongo models from another branch

This commit is contained in:
tenthirtyone 2017-08-17 17:41:07 -04:00
parent 898e373b77
commit d2f68fefe9
3 changed files with 43 additions and 6 deletions

View File

@ -28,7 +28,8 @@ const config = {
ticker_url: 'https://www.bitstamp.net/api/ticker/', ticker_url: 'https://www.bitstamp.net/api/ticker/',
ticker_prop: 'bitstamp', ticker_prop: 'bitstamp',
max_blocks: 72, max_blocks: 72,
max_txs: 10, max_txs: 50,
max_page_txs: 10,
request_ttl: 100000, request_ttl: 100000,
}, },
}; };

View File

@ -86,7 +86,7 @@ module.exports = function transactionAPI(router) {
return res.status(400).send({ return res.status(400).send({
error: 'Invalid block hash', error: 'Invalid block hash',
}); });
} }
const height = db.blocks.bestHeight(); const height = db.blocks.bestHeight();
// Get Bcoin data // Get Bcoin data
return request(`${API_URL}/block/${req.query.block}`, return request(`${API_URL}/block/${req.query.block}`,
@ -204,7 +204,17 @@ module.exports = function transactionAPI(router) {
}); });
} }
// Get last n txs // Get last n txs
return res.status(404).send({ error: 'Block hash or address expected' }); console.log('GETTING N TXS');
db.txs.getTopTransactions((err, txs) => {
if (err) {
logger.log('err',
`/txs getTopTransactions ${err}`);
return res.status(404).send(err);
}
return res.json(txs);
});
// return res.status(404).send({ error: 'Block hash or address expected' });
}); });
router.get('/rawtx/:txid', (req, res) => { router.get('/rawtx/:txid', (req, res) => {

View File

@ -4,9 +4,12 @@ const config = require('../../config');
// For now, blocks handles these calls. // For now, blocks handles these calls.
// These will be replaced with more advanced mongo // These will be replaced with more advanced mongo
// No optimization yet.
const MAX_TXS = config.api.max_txs; const MAX_TXS = config.api.max_page_txs;
const MAX_PAGE_TXS = config.api.max_page_txs;
// For Paging
function getTransactions(params, options, limit, cb) { function getTransactions(params, options, limit, cb) {
// Do not return mongo ids // Do not return mongo ids
const defaultOptions = { _id: 0 }; const defaultOptions = { _id: 0 };
@ -17,8 +20,8 @@ function getTransactions(params, options, limit, cb) {
limit = 1; limit = 1;
} }
if (limit > MAX_TXS) { if (limit > MAX_PAGE_TXS) {
limit = MAX_TXS; limit = MAX_PAGE_TXS;
} }
if (limit < 1) { if (limit < 1) {
@ -57,7 +60,30 @@ function getTransaction(params, options, limit, cb) {
}); });
} }
// Req Change, refactor above
function getTopTransactions(cb) {
// Do not return mongo ids
const defaultOptions = { _id: 0 };
// Query mongo
Transactions.find(
{},
(err, txs) => {
if (err) {
logger.log('error',
`getTransactions: ${err}`);
return cb(err);
}
if (!txs.length > 0) {
return cb({ err: 'Tx not found' });
}
return cb(null, txs);
})
.sort({ height: -1 })
.limit(MAX_TXS);
}
module.exports = { module.exports = {
getTransaction, getTransaction,
getTransactions, getTransactions,
getTopTransactions,
}; };