mirror of
https://github.com/lnbits/lnbits.git
synced 2025-09-19 03:57:29 +02:00
Form works, check LNURL is valid url
This commit is contained in:
@@ -13,7 +13,7 @@ async def create_lnurlpayout(wallet_id: str, data: CreateLnurlPayoutData) -> lnu
|
||||
INSERT INTO lnurlpayout.lnurlpayouts (id, wallet, lnurlpay, threshold)
|
||||
VALUES (?, ?, ?, ?)
|
||||
""",
|
||||
(lnurlpayout_id, wallet_id, data.name, data.currency),
|
||||
(lnurlpayout_id, wallet_id, data.lnurlpay, data.threshold),
|
||||
)
|
||||
|
||||
lnurlpayout = await get_lnurlpayout(lnurlpayout_id)
|
||||
@@ -23,8 +23,7 @@ async def create_lnurlpayout(wallet_id: str, data: CreateLnurlPayoutData) -> lnu
|
||||
|
||||
async def get_lnurlpayout(lnurlpayout_id: str) -> Optional[lnurlpayout]:
|
||||
row = await db.fetchone("SELECT * FROM lnurlpayout.lnurlpayouts WHERE id = ?", (lnurlpayout_id,))
|
||||
return lnurlpayout.from_row(row) if row else None
|
||||
|
||||
return lnurlpayout(**row) if row else None
|
||||
|
||||
async def get_lnurlpayouts(wallet_ids: Union[str, List[str]]) -> List[lnurlpayout]:
|
||||
if isinstance(wallet_ids, str):
|
||||
@@ -35,7 +34,7 @@ async def get_lnurlpayouts(wallet_ids: Union[str, List[str]]) -> List[lnurlpayou
|
||||
f"SELECT * FROM lnurlpayout.lnurlpayouts WHERE wallet IN ({q})", (*wallet_ids,)
|
||||
)
|
||||
|
||||
return [lnurlpayout.from_row(row) for row in rows]
|
||||
return [lnurlpayout(**row) if row else None for row in rows]
|
||||
|
||||
|
||||
async def delete_lnurlpayout(lnurlpayout_id: str) -> None:
|
||||
|
@@ -3,7 +3,6 @@ from sqlite3 import Row
|
||||
from pydantic import BaseModel
|
||||
|
||||
class CreateLnurlPayoutData(BaseModel):
|
||||
wallet: str
|
||||
lnurlpay: str
|
||||
threshold: int
|
||||
|
||||
|
@@ -6,7 +6,7 @@ from starlette.exceptions import HTTPException
|
||||
|
||||
from lnbits.core.crud import get_user
|
||||
from lnbits.core.services import create_invoice
|
||||
from lnbits.core.views.api import api_payment
|
||||
from lnbits.core.views.api import api_payment, api_payments_decode
|
||||
from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key
|
||||
|
||||
from . import lnurlpayout_ext
|
||||
@@ -29,9 +29,11 @@ async def api_lnurlpayouts(
|
||||
async def api_lnurlpayout_create(
|
||||
data: CreateLnurlPayoutData, wallet: WalletTypeInfo = Depends(get_key_type)
|
||||
):
|
||||
print("data")
|
||||
# lnurlpayout = await create_lnurlpayout(wallet_id=wallet.wallet.id, data=data)
|
||||
return #lnurlpayout.dict()
|
||||
url = api_payments_decode(data.lnurlpay)
|
||||
if url[0:4] != "http":
|
||||
raise PermissionError("Not valid LNURL")
|
||||
lnurlpayout = await create_lnurlpayout(wallet_id=wallet.wallet.id, data=data)
|
||||
return lnurlpayout.dict()
|
||||
|
||||
|
||||
@lnurlpayout_ext.delete("/api/v1/lnurlpayouts/{lnurlpayout_id}")
|
||||
|
Reference in New Issue
Block a user