diff --git a/lnbits/core/views/api.py b/lnbits/core/views/api.py index 8e2febeaa..fb20b0344 100644 --- a/lnbits/core/views/api.py +++ b/lnbits/core/views/api.py @@ -1,4 +1,4 @@ -from pydantic.types import constr +from pydantic import BaseModel import trio import json import httpx @@ -440,7 +440,7 @@ async def api_lnurlscan(code: str): return params -@core_app.post("/api/v1/lnurlauth", methods=["POST"]) +@core_app.post("/api/v1/lnurlauth") @api_check_wallet_key("admin") async def api_perform_lnurlauth(callback: str): err = await perform_lnurlauth(callback) diff --git a/lnbits/extensions/bleskomat/views.py b/lnbits/extensions/bleskomat/views.py index 971c028d9..4e57e9c2c 100644 --- a/lnbits/extensions/bleskomat/views.py +++ b/lnbits/extensions/bleskomat/views.py @@ -7,6 +7,7 @@ from . import bleskomat_ext from .exchange_rates import exchange_rate_providers_serializable, fiat_currencies from .helpers import get_callback_url from fastapi.templating import Jinja2Templates +from fastapi import Request templates = Jinja2Templates(directory="templates") diff --git a/lnbits/extensions/bleskomat/views_api.py b/lnbits/extensions/bleskomat/views_api.py index 23d858683..00a29a978 100644 --- a/lnbits/extensions/bleskomat/views_api.py +++ b/lnbits/extensions/bleskomat/views_api.py @@ -1,3 +1,6 @@ +from typing import Union +from fastapi.param_functions import Query +from pydantic import BaseModel from quart import g, jsonify, request from http import HTTPStatus @@ -50,9 +53,9 @@ async def api_bleskomat_retrieve(bleskomat_id): class CreateData(BaseModel): name: str - fiat_currency: str = fiat_currencies.keys() - exchange_rate_provider: str = exchange_rate_providers.keys() - fee: Optional[str, int, float] = Query(...) + fiat_currency: str = "EUR" # TODO: fix this + exchange_rate_provider: str = "bitfinex" + fee: Union[str, int, float] = Query(...) @bleskomat_ext.post("/api/v1/bleskomat") @bleskomat_ext.put("/api/v1/bleskomat/") diff --git a/lnbits/extensions/lnurlp/views_api.py b/lnbits/extensions/lnurlp/views_api.py index 3d2a4709b..b08a21625 100644 --- a/lnbits/extensions/lnurlp/views_api.py +++ b/lnbits/extensions/lnurlp/views_api.py @@ -1,3 +1,6 @@ +from typing import Optional +from fastapi.param_functions import Query +from pydantic.main import BaseModel from quart import g, jsonify, request from http import HTTPStatus from lnurl.exceptions import InvalidUrl as LnurlInvalidUrl # type: ignore @@ -60,10 +63,10 @@ async def api_link_retrieve(link_id): class CreateData(BaseModel): description: str - min: int = Query(ge=0.01) - max: int = Query(ge=0.01) + min: int = Query(0.01, ge=0.01) + max: int = Query(0.01, ge=0.01) currency: Optional[str] - comment_chars: int = Query(ge=0, lt=800) + comment_chars: int = Query(0, ge=0, lt=800) webhook_url: Optional[str] success_text: Optional[str] success_url: Optional[str] diff --git a/lnbits/extensions/offlineshop/views_api.py b/lnbits/extensions/offlineshop/views_api.py index 5f8f4b424..af2150cb4 100644 --- a/lnbits/extensions/offlineshop/views_api.py +++ b/lnbits/extensions/offlineshop/views_api.py @@ -1,3 +1,5 @@ +from typing import Optional +from pydantic.main import BaseModel from quart import g, jsonify from http import HTTPStatus from lnurl.exceptions import InvalidUrl as LnurlInvalidUrl # type: ignore diff --git a/lnbits/extensions/splitpayments/views_api.py b/lnbits/extensions/splitpayments/views_api.py index ac7c1a398..76e2b729a 100644 --- a/lnbits/extensions/splitpayments/views_api.py +++ b/lnbits/extensions/splitpayments/views_api.py @@ -1,3 +1,5 @@ +from typing import List, Optional +from pydantic import BaseModel from quart import g, jsonify from http import HTTPStatus @@ -22,7 +24,8 @@ class SchemaData(BaseModel): @splitpayments_ext.put("/api/v1/targets") @api_check_wallet_key("admin") -async def api_targets_set(targets: Optional(list[SchemaData]) = None): +async def api_targets_set(targets: Optional[List[SchemaData]] + = None): targets = [] for entry in targets: diff --git a/lnbits/extensions/streamalerts/views_api.py b/lnbits/extensions/streamalerts/views_api.py index 7da56e3a4..9e34ff36a 100644 --- a/lnbits/extensions/streamalerts/views_api.py +++ b/lnbits/extensions/streamalerts/views_api.py @@ -1,3 +1,5 @@ +from typing import Optional +from pydantic.main import BaseModel from quart import g, redirect, request, jsonify from http import HTTPStatus @@ -34,7 +36,7 @@ class CreateServicesData(BaseModel): @streamalerts_ext.post("/api/v1/services") @api_check_wallet_key("invoice") -async def api_create_service(data: CreateData): +async def api_create_service(data: CreateServicesData): """Create a service, which holds data about how/where to post donations""" try: service = await create_service(**data) diff --git a/lnbits/extensions/subdomains/views_api.py b/lnbits/extensions/subdomains/views_api.py index f70f27e50..3684c4ad5 100644 --- a/lnbits/extensions/subdomains/views_api.py +++ b/lnbits/extensions/subdomains/views_api.py @@ -1,3 +1,6 @@ +from typing import Optional +from fastapi.param_functions import Query +from pydantic.main import BaseModel from quart import g, jsonify, request from http import HTTPStatus @@ -42,7 +45,7 @@ class CreateDomainsData(BaseModel): domain: str cf_token: str cf_zone_id: str - webhook: optional[str] + webhook: Optional[str] description: str cost: int allowed_record_types: str @@ -103,7 +106,7 @@ class CreateDomainsData(BaseModel): subdomain: str email: str ip: str - sats: int = Query(ge=0) + sats: int = Query(0, ge=0) duration: int record_type: str diff --git a/lnbits/extensions/usermanager/views.py b/lnbits/extensions/usermanager/views.py index a01e83613..5bd72a515 100644 --- a/lnbits/extensions/usermanager/views.py +++ b/lnbits/extensions/usermanager/views.py @@ -3,7 +3,7 @@ from quart import g, render_template from lnbits.decorators import check_user_exists, validate_uuids from . import usermanager_ext -from fastapi import FastAPI, Request +from fastapi import Request from fastapi.templating import Jinja2Templates templates = Jinja2Templates(directory="templates") diff --git a/lnbits/extensions/usermanager/views_api.py b/lnbits/extensions/usermanager/views_api.py index ff10a48aa..1bf47d6b8 100644 --- a/lnbits/extensions/usermanager/views_api.py +++ b/lnbits/extensions/usermanager/views_api.py @@ -1,3 +1,5 @@ +from typing import Optional +from pydantic.main import BaseModel from quart import g, jsonify from http import HTTPStatus