fix(coordinator): cannot update_or_create with relate named on django v5 (#1263)

* Fix for django v5

* Fix re-submit invoice
This commit is contained in:
Reckless_Satoshi 2024-05-05 19:58:18 +00:00 committed by GitHub
parent c5380664b0
commit 3143144315
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 16 additions and 17 deletions

View File

@ -893,7 +893,7 @@ class Logics:
if order.status == Order.Status.FAI: if order.status == Order.Status.FAI:
if order.payout.status != LNPayment.Status.EXPIRE: if order.payout.status != LNPayment.Status.EXPIRE:
return False, { return False, {
"bad_request": "You can only submit an invoice after expiration or 3 failed attempts" "bad_invoice": "You can only submit an invoice after expiration or 3 failed attempts"
} }
# cancel onchain_payout if existing # cancel onchain_payout if existing
@ -909,25 +909,24 @@ class Logics:
if not payout["valid"]: if not payout["valid"]:
return False, payout["context"] return False, payout["context"]
order.payout, _ = LNPayment.objects.update_or_create( if order.payout:
if order.payout.payment_hash == payout["payment_hash"]:
return False, {"bad_invoice": "You must submit a NEW invoice"}
order.payout = LNPayment.objects.create(
concept=LNPayment.Concepts.PAYBUYER, concept=LNPayment.Concepts.PAYBUYER,
type=LNPayment.Types.NORM, type=LNPayment.Types.NORM,
sender=User.objects.get(username=ESCROW_USERNAME), sender=User.objects.get(username=ESCROW_USERNAME),
# In case this user has other payouts, update the one related to this order.
order_paid_LN=order,
receiver=user, receiver=user,
routing_budget_ppm=routing_budget_ppm, routing_budget_ppm=routing_budget_ppm,
routing_budget_sats=routing_budget_sats, routing_budget_sats=routing_budget_sats,
# if there is a LNPayment matching these above, it updates that one with defaults below. invoice=invoice,
defaults={ status=LNPayment.Status.VALIDI,
"invoice": invoice, num_satoshis=num_satoshis,
"status": LNPayment.Status.VALIDI, description=payout["description"],
"num_satoshis": num_satoshis, payment_hash=payout["payment_hash"],
"description": payout["description"], created_at=payout["created_at"],
"payment_hash": payout["payment_hash"], expires_at=payout["expires_at"],
"created_at": payout["created_at"],
"expires_at": payout["expires_at"],
},
) )
order.is_swap = False order.is_swap = False

View File

@ -1,4 +1,4 @@
django==4.2.11 django==5.0.4
django-admin-relation-links==0.2.5 django-admin-relation-links==0.2.5
django-celery-beat==2.6.0 django-celery-beat==2.6.0
django-celery-results==2.5.1 django-celery-results==2.5.1
@ -16,7 +16,7 @@ Pillow==10.1.0
python-decouple==3.8 python-decouple==3.8
requests==2.31.0 requests==2.31.0
ring==0.10.1 ring==0.10.1
git+https://github.com/RoboSats/Robohash.git git+https://github.com/RoboSats/Robohash.git@master
gunicorn==22.0.0 gunicorn==22.0.0
psycopg2==2.9.9 psycopg2==2.9.9
SQLAlchemy==2.0.16 SQLAlchemy==2.0.16

View File

@ -1,4 +1,4 @@
coverage==7.5.0 coverage==7.5.0
ruff==0.4.2 ruff==0.4.2
drf-openapi-tester @ git+https://github.com/Reckless-Satoshi/drf-openapi-tester.git@soften-django-requirements git+https://github.com/Reckless-Satoshi/drf-openapi-tester.git@soften-django-requirements
pre-commit==3.7.0 pre-commit==3.7.0