getlasttxs api no longer allows query string parameters

This commit is contained in:
joeuhren
2020-12-18 14:55:30 -07:00
parent 7a1f4a23d5
commit becdeab02d
6 changed files with 50 additions and 17 deletions
+33 -1
View File
@@ -205,7 +205,39 @@ app.use('/ext/getbasicstats', function(req,res) {
});
app.use('/ext/getlasttxs/:min', function(req, res) {
db.get_last_txs(req, function(data, count) {
var min = req.params.min, start, length;
// split url suffix by forward slash and remove blank entries
var split = req.url.split('/').filter(function(v) { return v; });
// determine how many parameters were passed
switch (split.length) {
case 2:
// capture start and length
start = split[0];
length = split[1];
break;
default:
if (split.length == 1) {
// capture start
start = split[0];
} else if (split.length > 2) {
// capture start and length
start = split[0];
length = split[1];
}
break;
}
// fix parameters
if (typeof length === 'undefined' || isNaN(length) || length > settings.index.last_txs)
length = settings.index.last_txs;
if (typeof start === 'undefined' || isNaN(start) || start < 0)
start = 0;
if (typeof min === 'undefined' || isNaN(min ) || min < 0)
min = 0;
else
min = (min * 100000000);
db.get_last_txs(start, length, min, function(data, count) {
res.json({"data":data, "recordsTotal": count, "recordsFiltered": count});
});
});
+2 -11
View File
@@ -395,17 +395,8 @@ module.exports = {
});
},
get_last_txs: function(req, cb) {
if (typeof req.query.length === 'undefined' || isNaN(req.query.length) || req.query.length > settings.index.last_txs)
req.query.length = settings.index.last_txs;
if (typeof req.query.start === 'undefined' || isNaN(req.query.start) || req.query.start < 0)
req.query.start = 0;
if (typeof req.params.min === 'undefined' || isNaN(req.params.min ) || req.params.min < 0)
req.params.min = 0;
else
req.params.min = (req.params.min * 100000000);
this.get_last_txs_ajax(req.query.start, req.query.length, req.params.min,function(txs, count) {
get_last_txs: function(start, length, min, cb) {
this.get_last_txs_ajax(start, length, min, function(txs, count) {
var data = [];
for(i=0; i<txs.length; i++) {
var row = [];
+1 -1
View File
@@ -31,7 +31,7 @@ block content
ajax: {
url: '/ext/getlasttxs/0',
beforeSend: function(jqXHR, settings) {
settings.url = fixDatatableQuerystring(settings.url, 5);
settings.url = settings.url.substring(0, settings.url.indexOf('?')) + '/' + getParameterByName('start', settings.url) + '/' + getParameterByName('length', settings.url);
return true;
}
},
+4 -3
View File
@@ -181,12 +181,13 @@ block content
a(href='/ext/getbalance/' + hashes.address) #{address}/ext/getbalance/#{hashes.address}
li
p
div.font-weight-bold getlasttxs (/ext/getlasttxs/min)
div.font-weight-bold getlasttxs (/ext/getlasttxs/min/start/length)
div
em Returns last transactions greater than [min]
em Returns last [length] transactions greater than [min], starting from offset [start]
div
em Note: returned values are in satoshis
a(href='/ext/getlasttxs/100') #{address}/ext/getlasttxs/100
div
a(href='/ext/getlasttxs/100/0/100') #{address}/ext/getlasttxs/100/0/100
li
p
div.font-weight-bold getcurrentprice
+9
View File
@@ -27,6 +27,15 @@ html(lang='en')
if active == 'reward'
script(type='text/javascript', src='/js/Chart.min.js')
script.
/* Special thanks to the stackoverflow community for the getParameterByName function: https://stackoverflow.com/a/901144/3038650 */
function getParameterByName(name, url = window.location.href) {
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
/* Special thanks to bobince for the removeURLParameter function: https://stackoverflow.com/a/1634841/3038650 */
function removeURLParameter(url, parameter) {
//prefer to use l.search if you have a location/link object
+1 -1
View File
@@ -32,7 +32,7 @@ block content
ajax: {
url: '/ext/getlasttxs/#{min_amount}',
beforeSend: function(jqXHR, settings) {
settings.url = fixDatatableQuerystring(settings.url, 3);
settings.url = settings.url.substring(0, settings.url.indexOf('?')) + '/' + getParameterByName('start', settings.url) + '/' + getParameterByName('length', settings.url);
return true;
}
},