fix possible duplicate lnaddress when update pay link (#8)
Co-authored-by: dni ⚡ <office@dnilabs.com>
This commit is contained in:
parent
ab6b53668e
commit
7d32a36d51
1 changed files with 3 additions and 15 deletions
18
crud.py
18
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(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue