marginally improve the checkpending situation.

This commit is contained in:
fiatjaf 2021-03-21 17:10:53 -03:00
parent e4fb18a53a
commit f27c2ebc21
3 changed files with 34 additions and 30 deletions

View File

@ -584,18 +584,16 @@ new Vue({
LNbits.href.deleteWallet(walletId, user)
})
},
fetchPayments: function (checkPending) {
return LNbits.api
.getPayments(this.g.wallet, checkPending)
.then(response => {
this.payments = response.data
.map(obj => {
return LNbits.map.payment(obj)
})
.sort((a, b) => {
return b.time - a.time
})
})
fetchPayments: function () {
return LNbits.api.getPayments(this.g.wallet).then(response => {
this.payments = response.data
.map(obj => {
return LNbits.map.payment(obj)
})
.sort((a, b) => {
return b.time - a.time
})
})
},
fetchBalance: function () {
LNbits.api.getWallet(this.g.wallet).then(response => {
@ -612,9 +610,12 @@ new Vue({
message: 'Checking pending transactions...'
})
this.fetchPayments(true).then(() => {
dismissMsg()
})
LNbits.api
.checkPending(this.g.wallet)
.then(() => LNbits.api.fetchPayments)
.then(() => {
dismissMsg()
})
},
exportCSV: function () {
LNbits.utils.exportCSV(this.paymentsTable.columns, this.payments)
@ -628,7 +629,7 @@ new Vue({
created: function () {
this.fetchBalance()
this.fetchPayments()
setTimeout(this.checkPendingPayments(), 1200)
this.checkPendingPayments()
},
mounted: function () {
// show disclaimer

View File

@ -3,7 +3,7 @@ import json
import lnurl # type: ignore
import httpx
from urllib.parse import urlparse, urlunparse, urlencode, parse_qs, ParseResult
from quart import g, jsonify, request, make_response
from quart import g, jsonify, make_response
from http import HTTPStatus
from binascii import unhexlify
from typing import Dict, Union
@ -32,15 +32,20 @@ async def api_wallet():
)
@core_app.route("/api/v1/checkpending", methods=["POST"])
@api_check_wallet_key("invoice")
async def api_checkpending():
g.nursery.start_soon(delete_expired_invoices)
for payment in await g.wallet.get_payments(complete=False, pending=True, exclude_uncheckable=True):
await payment.check_pending()
return "", HTTPStatus.NO_CONTENT
@core_app.route("/api/v1/payments", methods=["GET"])
@api_check_wallet_key("invoice")
async def api_payments():
if "check_pending" in request.args:
await delete_expired_invoices()
for payment in await g.wallet.get_payments(complete=False, pending=True, exclude_uncheckable=True):
await payment.check_pending()
return jsonify(await g.wallet.get_payments(pending=True)), HTTPStatus.OK

View File

@ -52,13 +52,11 @@ window.LNbits = {
getWallet: function (wallet) {
return this.request('get', '/api/v1/wallet', wallet.inkey)
},
getPayments: function (wallet, checkPending) {
var query_param = checkPending ? '?check_pending' : ''
return this.request(
'get',
['/api/v1/payments', query_param].join(''),
wallet.inkey
)
checkPending: function (wallet) {
return this.request('post', '/api/v1/checkpending', wallet.inkey)
},
getPayments: function (wallet) {
return this.request('get', '/api/v1/payments', wallet.inkey)
},
getPayment: function (wallet, paymentHash) {
return this.request(