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
|
# 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:
|
async def check_lnaddress_not_exists(username: str) -> bool:
|
||||||
# check if lnaddress username exists in the database when creating a new entry
|
# check if lnaddress username exists in the database when creating a new entry
|
||||||
row = await db.fetchall(
|
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]:
|
async def update_pay_link(link_id: str, **kwargs) -> Optional[PayLink]:
|
||||||
if "lnaddress" in kwargs:
|
if len(kwargs["username"]) > 0:
|
||||||
await check_lnaddress_format(kwargs["lnaddress"])
|
await check_lnaddress_format(kwargs["username"])
|
||||||
await check_lnaddress_update(kwargs["lnaddress"], link_id)
|
await check_lnaddress_not_exists(kwargs["username"])
|
||||||
|
|
||||||
q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()])
|
q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()])
|
||||||
await db.execute(
|
await db.execute(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue