From 7d32a36d516b7cfcabd7d52f135d7cfd42206d6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Pha=CC=A3m-Bachelart?= Date: Sun, 24 Sep 2023 20:21:31 +0200 Subject: [PATCH] fix possible duplicate lnaddress when update pay link (#8) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: dni ⚡ --- crud.py | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/crud.py b/crud.py index 4104b37..4bbde29 100644 --- a/crud.py +++ b/crud.py @@ -10,18 +10,6 @@ from .services import check_lnaddress_format # from loguru import logger -async def check_lnaddress_update(username: str, id: str) -> bool: - # check no duplicates for lnaddress when updating an username - row = await db.fetchall( - "SELECT username FROM lnurlp.pay_links WHERE username = ? AND id = ?", - (username, id), - ) - if row: - raise Exception("Username already exists. Try a different one.") - else: - return True - - async def check_lnaddress_not_exists(username: str) -> bool: # check if lnaddress username exists in the database when creating a new entry row = await db.fetchall( @@ -117,9 +105,9 @@ async def get_pay_links(wallet_ids: Union[str, List[str]]) -> List[PayLink]: async def update_pay_link(link_id: str, **kwargs) -> Optional[PayLink]: - if "lnaddress" in kwargs: - await check_lnaddress_format(kwargs["lnaddress"]) - await check_lnaddress_update(kwargs["lnaddress"], link_id) + if len(kwargs["username"]) > 0: + await check_lnaddress_format(kwargs["username"]) + await check_lnaddress_not_exists(kwargs["username"]) q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()]) await db.execute(