Fix case-insensitive address search
This commit is contained in:
@@ -68,7 +68,7 @@ app.use('/ext/getmoneysupply', function(req,res){
|
|||||||
});
|
});
|
||||||
|
|
||||||
app.use('/ext/getaddress/:hash', function(req,res){
|
app.use('/ext/getaddress/:hash', function(req,res){
|
||||||
db.get_address(req.params.hash, function(address){
|
db.get_address(req.params.hash, false, function(address){
|
||||||
if (address) {
|
if (address) {
|
||||||
var a_ext = {
|
var a_ext = {
|
||||||
address: address.a_id,
|
address: address.a_id,
|
||||||
@@ -85,7 +85,7 @@ app.use('/ext/getaddress/:hash', function(req,res){
|
|||||||
});
|
});
|
||||||
|
|
||||||
app.use('/ext/getbalance/:hash', function(req,res){
|
app.use('/ext/getbalance/:hash', function(req,res){
|
||||||
db.get_address(req.params.hash, function(address){
|
db.get_address(req.params.hash, false, function(address){
|
||||||
if (address) {
|
if (address) {
|
||||||
res.send((address.balance / 100000000).toString().replace(/(^-+)/mg, ''));
|
res.send((address.balance / 100000000).toString().replace(/(^-+)/mg, ''));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+21
-11
@@ -20,14 +20,24 @@ var mongoose = require('mongoose')
|
|||||||
, stex = require('./markets/stex')
|
, stex = require('./markets/stex')
|
||||||
, coindesk = require('./apis/coindesk');
|
, coindesk = require('./apis/coindesk');
|
||||||
|
|
||||||
function find_address(hash, cb) {
|
function find_address(hash, caseSensitive, cb) {
|
||||||
Address.findOne({a_id: { $regex: hash, $options: 'i' }}, function(err, address) {
|
if (caseSensitive) {
|
||||||
if(address) {
|
// faster search but only matches exact string including case
|
||||||
return cb(address);
|
Address.findOne({a_id: hash}, function(err, address) {
|
||||||
} else {
|
if (address)
|
||||||
return cb();
|
return cb(address);
|
||||||
}
|
else
|
||||||
});
|
return cb();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// slower search but matches exact string ignoring case
|
||||||
|
Address.findOne({a_id: {$regex: '^' + hash + '$', $options: 'i'}}, function(err, address) {
|
||||||
|
if (address)
|
||||||
|
return cb(address);
|
||||||
|
else
|
||||||
|
return cb();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function find_richlist(coin, cb) {
|
function find_richlist(coin, cb) {
|
||||||
@@ -42,7 +52,7 @@ function find_richlist(coin, cb) {
|
|||||||
|
|
||||||
function update_address(hash, txid, amount, type, cb) {
|
function update_address(hash, txid, amount, type, cb) {
|
||||||
// Check if address exists
|
// Check if address exists
|
||||||
find_address(hash, function(address) {
|
find_address(hash, true, function(address) {
|
||||||
if (address) {
|
if (address) {
|
||||||
// if coinbase (new coins PoW), update sent only and return cb.
|
// if coinbase (new coins PoW), update sent only and return cb.
|
||||||
if ( hash == 'coinbase' ) {
|
if ( hash == 'coinbase' ) {
|
||||||
@@ -308,8 +318,8 @@ module.exports = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
get_address: function(hash, cb) {
|
get_address: function(hash, caseSensitive, cb) {
|
||||||
find_address(hash, function(address){
|
find_address(hash, caseSensitive, function(address){
|
||||||
return cb(address);
|
return cb(address);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
+2
-2
@@ -93,7 +93,7 @@ function route_get_index(res, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function route_get_address(res, hash, count) {
|
function route_get_address(res, hash, count) {
|
||||||
db.get_address(hash, function(address) {
|
db.get_address(hash, false, function(address) {
|
||||||
if (address) {
|
if (address) {
|
||||||
var txs = [];
|
var txs = [];
|
||||||
var hashes = address.txs.reverse();
|
var hashes = address.txs.reverse();
|
||||||
@@ -252,7 +252,7 @@ router.post('/search', function(req, res) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
db.get_address(query, function(address) {
|
db.get_address(query, false, function(address) {
|
||||||
if (address) {
|
if (address) {
|
||||||
res.redirect('/address/' + address.a_id);
|
res.redirect('/address/' + address.a_id);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user