This commit is contained in:
callebtc 2023-03-22 09:53:02 +01:00
commit 8c5a494489

16
crud.py
View file

@ -5,6 +5,7 @@ from lnbits.helpers import urlsafe_short_hash
from . import db # , maindb from . import db # , maindb
from .models import CreatePayLinkData, PayLink from .models import CreatePayLinkData, PayLink
from .services import check_lnaddress_format
# from loguru import logger # from loguru import logger
@ -15,9 +16,8 @@ async def check_lnaddress_update(username: str, id: str) -> bool:
"SELECT username FROM lnurlp.pay_links WHERE username = ? AND id = ?", "SELECT username FROM lnurlp.pay_links WHERE username = ? AND id = ?",
(username, id), (username, id),
) )
if len(row) > 1: if row:
assert False, "Username already exists. Try a different one." raise Exception("Username already exists. Try a different one.")
return
else: else:
return True return True
@ -28,19 +28,11 @@ async def check_lnaddress_not_exists(username: str) -> bool:
"SELECT username FROM lnurlp.pay_links WHERE username = ?", (username,) "SELECT username FROM lnurlp.pay_links WHERE username = ?", (username,)
) )
if row: if row:
assert False, "Username already exists. Try a different one." raise Exception("Username already exists. Try a different one.")
else: else:
return True return True
async def check_lnaddress_format(username: str) -> bool:
# check username complies with lnaddress specification
if not re.match("^[a-z0-9-_.]{3,15}$", username):
assert False, "Only letters a-z0-9-_. allowed, min 3 and max 15 characters!"
return
return True
async def create_pay_link(data: CreatePayLinkData, wallet_id: str) -> PayLink: async def create_pay_link(data: CreatePayLinkData, wallet_id: str) -> PayLink:
if data.username: if data.username:
await check_lnaddress_format(data.username) await check_lnaddress_format(data.username)