From 9c3442ea43cb7523b55af8f9198984c7a8cfffcb Mon Sep 17 00:00:00 2001 From: Ben Arc Date: Fri, 20 Aug 2021 15:27:57 +0100 Subject: [PATCH] Attempt at replacing schema --- lnbits/extensions/amilk/models.py | 2 -- lnbits/extensions/paywall/views_api.py | 31 +++++++++++--------------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/lnbits/extensions/amilk/models.py b/lnbits/extensions/amilk/models.py index 7ee6bf90..647cc530 100644 --- a/lnbits/extensions/amilk/models.py +++ b/lnbits/extensions/amilk/models.py @@ -1,6 +1,4 @@ -from sqlite3 import Row from pydantic import BaseModel -#from typing import NamedTuple class AMilk(BaseModel): diff --git a/lnbits/extensions/paywall/views_api.py b/lnbits/extensions/paywall/views_api.py index 45c80af4..9fbda2f1 100644 --- a/lnbits/extensions/paywall/views_api.py +++ b/lnbits/extensions/paywall/views_api.py @@ -7,7 +7,9 @@ from lnbits.decorators import api_check_wallet_key, api_validate_post_request from . import paywall_ext from .crud import create_paywall, get_paywall, get_paywalls, delete_paywall - +from typing import Optional +from pydantic import BaseModel +from fastapi import FastAPI, Query @paywall_ext.route("/api/v1/paywalls", methods=["GET"]) @api_check_wallet_key("invoice") @@ -23,25 +25,18 @@ async def api_paywalls(): ) +class CreateData(BaseModel): + url: Optional[str] = Query(...), + memo: Optional[str] = Query(...), + description: str = Query(None), + amount: int = Query(None), + remembers: bool = Query(None) + @paywall_ext.route("/api/v1/paywalls", methods=["POST"]) @api_check_wallet_key("invoice") -@api_validate_post_request( - schema={ - "url": {"type": "string", "empty": False, "required": True}, - "memo": {"type": "string", "empty": False, "required": True}, - "description": { - "type": "string", - "empty": True, - "nullable": True, - "required": False, - }, - "amount": {"type": "integer", "min": 0, "required": True}, - "remembers": {"type": "boolean", "required": True}, - } -) -async def api_paywall_create(): - paywall = await create_paywall(wallet_id=g.wallet.id, **g.data) - return jsonify(paywall._asdict()), HTTPStatus.CREATED +async def api_paywall_create(data: CreateData): + paywall = await create_paywall(wallet_id=g.wallet.id, **data) + return paywall, HTTPStatus.CREATED @paywall_ext.route("/api/v1/paywalls/", methods=["DELETE"])