diff --git a/lnbits/extensions/lnurlpayout/crud.py b/lnbits/extensions/lnurlpayout/crud.py index ca97c6375..56c6eab74 100644 --- a/lnbits/extensions/lnurlpayout/crud.py +++ b/lnbits/extensions/lnurlpayout/crud.py @@ -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: diff --git a/lnbits/extensions/lnurlpayout/models.py b/lnbits/extensions/lnurlpayout/models.py index f749ae9d6..246af13a6 100644 --- a/lnbits/extensions/lnurlpayout/models.py +++ b/lnbits/extensions/lnurlpayout/models.py @@ -3,7 +3,6 @@ from sqlite3 import Row from pydantic import BaseModel class CreateLnurlPayoutData(BaseModel): - wallet: str lnurlpay: str threshold: int diff --git a/lnbits/extensions/lnurlpayout/views_api.py b/lnbits/extensions/lnurlpayout/views_api.py index 5d684a1f3..1906cd127 100644 --- a/lnbits/extensions/lnurlpayout/views_api.py +++ b/lnbits/extensions/lnurlpayout/views_api.py @@ -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}")