fix: update_payment should return the updated payment (#3983)
This commit is contained in:
@@ -321,13 +321,15 @@ async def update_payment(
|
|||||||
payment: Payment,
|
payment: Payment,
|
||||||
new_checking_id: str | None = None,
|
new_checking_id: str | None = None,
|
||||||
conn: Connection | None = None,
|
conn: Connection | None = None,
|
||||||
) -> None:
|
) -> Payment:
|
||||||
payment.updated_at = datetime.now(timezone.utc)
|
payment.updated_at = datetime.now(timezone.utc)
|
||||||
await (conn or db).update(
|
await (conn or db).update(
|
||||||
"apipayments", payment, "WHERE checking_id = :checking_id"
|
"apipayments", payment, "WHERE checking_id = :checking_id"
|
||||||
)
|
)
|
||||||
if new_checking_id and new_checking_id != payment.checking_id:
|
if new_checking_id and new_checking_id != payment.checking_id:
|
||||||
await update_payment_checking_id(payment.checking_id, new_checking_id, conn)
|
await update_payment_checking_id(payment.checking_id, new_checking_id, conn)
|
||||||
|
payment.checking_id = new_checking_id
|
||||||
|
return payment
|
||||||
|
|
||||||
|
|
||||||
async def get_payments_history(
|
async def get_payments_history(
|
||||||
|
|||||||
@@ -171,15 +171,15 @@ async def create_fiat_invoice(
|
|||||||
|
|
||||||
internal_payment.fiat_provider = fiat_provider_name
|
internal_payment.fiat_provider = fiat_provider_name
|
||||||
internal_payment.extra["fiat_checking_id"] = fiat_invoice.checking_id
|
internal_payment.extra["fiat_checking_id"] = fiat_invoice.checking_id
|
||||||
# todo: move to payent
|
# TODO: move to payment
|
||||||
internal_payment.extra["fiat_payment_request"] = fiat_invoice.payment_request
|
internal_payment.extra["fiat_payment_request"] = fiat_invoice.payment_request
|
||||||
new_checking_id = (
|
new_checking_id = (
|
||||||
f"fiat_{fiat_provider_name}_"
|
f"fiat_{fiat_provider_name}_"
|
||||||
f"{fiat_invoice.checking_id or internal_payment.checking_id}"
|
f"{fiat_invoice.checking_id or internal_payment.checking_id}"
|
||||||
)
|
)
|
||||||
await update_payment(internal_payment, new_checking_id, conn=conn)
|
internal_payment = await update_payment(
|
||||||
internal_payment.checking_id = new_checking_id
|
internal_payment, new_checking_id, conn=conn
|
||||||
|
)
|
||||||
return internal_payment
|
return internal_payment
|
||||||
|
|
||||||
|
|
||||||
@@ -374,7 +374,7 @@ async def update_pending_payment(
|
|||||||
status = await check_payment_status(payment)
|
status = await check_payment_status(payment)
|
||||||
if status.failed:
|
if status.failed:
|
||||||
payment.status = PaymentState.FAILED
|
payment.status = PaymentState.FAILED
|
||||||
await update_payment(payment, conn=conn)
|
payment = await update_payment(payment, conn=conn)
|
||||||
elif status.success:
|
elif status.success:
|
||||||
payment = await update_payment_success_status(payment, status, conn=conn)
|
payment = await update_payment_success_status(payment, status, conn=conn)
|
||||||
return payment
|
return payment
|
||||||
@@ -876,7 +876,7 @@ async def update_payment_success_status(
|
|||||||
payment.status = PaymentState.SUCCESS
|
payment.status = PaymentState.SUCCESS
|
||||||
payment.fee = -(abs(status.fee_msat or 0) + abs(service_fee_msat))
|
payment.fee = -(abs(status.fee_msat or 0) + abs(service_fee_msat))
|
||||||
payment.preimage = payment.preimage or status.preimage
|
payment.preimage = payment.preimage or status.preimage
|
||||||
await update_payment(payment, conn=conn)
|
payment = await update_payment(payment, conn=conn)
|
||||||
return payment
|
return payment
|
||||||
|
|
||||||
|
|
||||||
@@ -1099,8 +1099,9 @@ async def update_invoice_callback(checking_id: str) -> Payment | None:
|
|||||||
payment.fee = status.fee_msat or payment.fee
|
payment.fee = status.fee_msat or payment.fee
|
||||||
# only overwrite preimage if status.preimage provides it
|
# only overwrite preimage if status.preimage provides it
|
||||||
payment.preimage = status.preimage or payment.preimage
|
payment.preimage = status.preimage or payment.preimage
|
||||||
|
|
||||||
payment.status = PaymentState.SUCCESS
|
payment.status = PaymentState.SUCCESS
|
||||||
await update_payment(payment)
|
payment = await update_payment(payment)
|
||||||
if payment.fiat_provider:
|
if payment.fiat_provider:
|
||||||
await handle_fiat_payment_confirmation(payment)
|
await handle_fiat_payment_confirmation(payment)
|
||||||
return payment
|
return payment
|
||||||
|
|||||||
Reference in New Issue
Block a user