Merge branch 'bluewallet-lndhub'

# Conflicts:
#	controllers/api.js
This commit is contained in:
Agustin Kassis 2020-03-30 21:24:32 -03:00
commit a6b08363a7
4 changed files with 29 additions and 12 deletions

View File

@ -234,8 +234,11 @@ export class User {
return await this._redis.get('ispaid_' + payment_hash);
}
async getUserInvoices() {
async getUserInvoices(limit) {
let range = await this._redis.lrange('userinvoices_for_' + this._userid, 0, -1);
if (limit && !isNaN(parseInt(limit))) {
range = range.slice(parseInt(limit) * -1);
}
let result = [];
for (let invoice of range) {
invoice = JSON.parse(invoice);

View File

@ -32,7 +32,7 @@ bitcoinclient.request('getblockchaininfo', false, function(err, info) {
lightning.getInfo({}, function(err, info) {
if (err) {
console.error('lnd failure shuuu');
console.error('lnd failure');
console.dir(err);
process.exit(3);
}
@ -272,12 +272,27 @@ router.get('/checkpayment/:payment_hash', async function(req, res) {
router.get('/balance', postLimiter, async function(req, res) {
logger.log('/balance', [req.id]);
try {
let u = new User(redis, bitcoinclient, lightning);
if (!(await u.loadByAuthorization(req.headers.authorization))) {
await u.loadByAuthorization(req.headers.authorization);
if (!u.getUserId()) {
return errorBadAuth(res);
}
let paid = !!(await u.getPaymentHashPaid(req.params.payment_hash));
res.send({ paid: paid });
});
router.get('/balance', postLimiter, async function(req, res) {
try {
logger.log('/balance', [req.id]);
let u = new User(redis, bitcoinclient, lightning);
if (!(await u.loadByAuthorization(req.headers.authorization))) {
return errorBadAuth(res);
}
logger.log('/balance', [req.id, 'userid: ' + u.getUserId()]);
if (!(await u.getAddress())) await u.generateAddress(); // onchain address needed further
await u.accountForPosibleTxids();
let balance = await u.getBalance();
@ -308,6 +323,7 @@ router.get('/gettxs', async function(req, res) {
if (!(await u.loadByAuthorization(req.headers.authorization))) {
return errorBadAuth(res);
}
logger.log('/gettxs', [req.id, 'userid: ' + u.getUserId()]);
if (!(await u.getAddress())) await u.generateAddress(); // onchain addr needed further
try {
@ -330,20 +346,17 @@ router.get('/gettxs', async function(req, res) {
}
});
router.get('/getuserinvoices', async function(req, res) {
router.get('/getuserinvoices', postLimiter, async function(req, res) {
logger.log('/getuserinvoices', [req.id]);
let u = new User(redis, bitcoinclient, lightning);
if (!(await u.loadByAuthorization(req.headers.authorization))) {
return errorBadAuth(res);
}
logger.log('/getuserinvoices', [req.id, 'userid: ' + u.getUserId()]);
try {
let invoices = await u.getUserInvoices();
if (req.query.limit && !isNaN(parseInt(req.query.limit))) {
res.send(invoices.slice(parseInt(req.query.limit) * -1));
} else {
res.send(invoices);
}
let invoices = await u.getUserInvoices(req.query.limit);
res.send(invoices);
} catch (Err) {
logger.log('', [req.id, 'error getting user invoices:', Err.message, 'userid:', u.getUserId()]);
res.send([]);
@ -372,6 +385,7 @@ router.get('/getpending', async function(req, res) {
if (!(await u.loadByAuthorization(req.headers.authorization))) {
return errorBadAuth(res);
}
logger.log('/getpending', [req.id, 'userid: ' + u.getUserId()]);
if (!(await u.getAddress())) await u.generateAddress(); // onchain address needed further
await u.accountForPosibleTxids();

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "LndHub",
"version": "1.1.3",
"version": "1.1.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "LndHub",
"version": "1.1.3",
"version": "1.1.4",
"description": "",
"main": "index.js",
"scripts": {