Merge pull request #1271 from lnbits/fix/mypy/ignores

removing type: ignore from Query, Depends, Body and import them correctly
This commit is contained in:
calle 2023-01-04 09:19:06 +01:00 committed by GitHub
commit b622028f7d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 96 additions and 147 deletions

View file

@ -17,7 +17,7 @@ from ..crud import delete_admin_settings, get_admin_settings, update_admin_setti
@core_app.get("/admin/api/v1/settings/") @core_app.get("/admin/api/v1/settings/")
async def api_get_settings( async def api_get_settings(
user: User = Depends(check_admin), # type: ignore user: User = Depends(check_admin),
) -> Optional[AdminSettings]: ) -> Optional[AdminSettings]:
admin_settings = await get_admin_settings(user.super_user) admin_settings = await get_admin_settings(user.super_user)
return admin_settings return admin_settings

View file

@ -12,6 +12,7 @@ import async_timeout
import httpx import httpx
import pyqrcode import pyqrcode
from fastapi import ( from fastapi import (
Body,
Depends, Depends,
Header, Header,
Query, Query,
@ -21,7 +22,6 @@ from fastapi import (
WebSocketDisconnect, WebSocketDisconnect,
) )
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
from fastapi.params import Body
from loguru import logger from loguru import logger
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.fields import Field from pydantic.fields import Field
@ -251,7 +251,7 @@ async def api_payments_pay_invoice(bolt11: str, wallet: Wallet):
) )
async def api_payments_create( async def api_payments_create(
wallet: WalletTypeInfo = Depends(require_invoice_key), wallet: WalletTypeInfo = Depends(require_invoice_key),
invoiceData: CreateInvoiceData = Body(...), # type: ignore invoiceData: CreateInvoiceData = Body(...),
): ):
if invoiceData.out is True and wallet.wallet_type == 0: if invoiceData.out is True and wallet.wallet_type == 0:
if not invoiceData.bolt11: if not invoiceData.bolt11:
@ -387,7 +387,7 @@ async def subscribe_wallet_invoices(request: Request, wallet: Wallet):
jdata = json.dumps(dict(data.dict(), pending=False)) jdata = json.dumps(dict(data.dict(), pending=False))
yield dict(data=jdata, event=typ) yield dict(data=jdata, event=typ)
except asyncio.CancelledError as e: except asyncio.CancelledError:
logger.debug(f"removing listener for wallet {uid}") logger.debug(f"removing listener for wallet {uid}")
api_invoice_listeners.pop(uid) api_invoice_listeners.pop(uid)
task.cancel() task.cancel()

View file

@ -2,9 +2,8 @@ import asyncio
from http import HTTPStatus from http import HTTPStatus
from typing import Optional from typing import Optional
from fastapi import Request, status from fastapi import Depends, Query, Request, status
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
from fastapi.params import Depends, Query
from fastapi.responses import FileResponse, RedirectResponse from fastapi.responses import FileResponse, RedirectResponse
from fastapi.routing import APIRouter from fastapi.routing import APIRouter
from loguru import logger from loguru import logger
@ -49,9 +48,9 @@ async def home(request: Request, lightning: str = ""):
) )
async def extensions( async def extensions(
request: Request, request: Request,
user: User = Depends(check_user_exists), # type: ignore user: User = Depends(check_user_exists),
enable: str = Query(None), # type: ignore enable: str = Query(None),
disable: str = Query(None), # type: ignore disable: str = Query(None),
): ):
extension_to_enable = enable extension_to_enable = enable
extension_to_disable = disable extension_to_disable = disable
@ -103,10 +102,10 @@ nothing: create everything<br>
""", """,
) )
async def wallet( async def wallet(
request: Request = Query(None), # type: ignore request: Request = Query(None),
nme: Optional[str] = Query(None), # type: ignore nme: Optional[str] = Query(None),
usr: Optional[UUID4] = Query(None), # type: ignore usr: Optional[UUID4] = Query(None),
wal: Optional[UUID4] = Query(None), # type: ignore wal: Optional[UUID4] = Query(None),
): ):
user_id = usr.hex if usr else None user_id = usr.hex if usr else None
wallet_id = wal.hex if wal else None wallet_id = wal.hex if wal else None
@ -217,7 +216,7 @@ async def lnurl_full_withdraw_callback(request: Request):
@core_html_routes.get("/deletewallet", response_class=RedirectResponse) @core_html_routes.get("/deletewallet", response_class=RedirectResponse)
async def deletewallet(request: Request, wal: str = Query(...), usr: str = Query(...)): # type: ignore async def deletewallet(wal: str = Query(...), usr: str = Query(...)):
user = await get_user(usr) user = await get_user(usr)
user_wallet_ids = [u.id for u in user.wallets] # type: ignore user_wallet_ids = [u.id for u in user.wallets] # type: ignore
@ -313,7 +312,7 @@ async def manifest(usr: str):
@core_html_routes.get("/admin", response_class=HTMLResponse) @core_html_routes.get("/admin", response_class=HTMLResponse)
async def index(request: Request, user: User = Depends(check_admin)): # type: ignore async def index(request: Request, user: User = Depends(check_admin)):
WALLET = get_wallet_class() WALLET = get_wallet_class()
_, balance = await WALLET.status() _, balance = await WALLET.status()

View file

@ -1,11 +1,8 @@
from http import HTTPStatus from http import HTTPStatus
from typing import Union
from cerberus import Validator # type: ignore from fastapi import Security, status
from fastapi import status
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
from fastapi.openapi.models import APIKey, APIKeyIn from fastapi.openapi.models import APIKey, APIKeyIn
from fastapi.params import Security
from fastapi.security.api_key import APIKeyHeader, APIKeyQuery from fastapi.security.api_key import APIKeyHeader, APIKeyQuery
from fastapi.security.base import SecurityBase from fastapi.security.base import SecurityBase
from pydantic.types import UUID4 from pydantic.types import UUID4
@ -118,8 +115,8 @@ api_key_query = APIKeyQuery(
async def get_key_type( async def get_key_type(
r: Request, r: Request,
api_key_header: str = Security(api_key_header), # type: ignore api_key_header: str = Security(api_key_header),
api_key_query: str = Security(api_key_query), # type: ignore api_key_query: str = Security(api_key_query),
) -> WalletTypeInfo: ) -> WalletTypeInfo:
# 0: admin # 0: admin
# 1: invoice # 1: invoice
@ -174,8 +171,8 @@ async def get_key_type(
async def require_admin_key( async def require_admin_key(
r: Request, r: Request,
api_key_header: str = Security(api_key_header), # type: ignore api_key_header: str = Security(api_key_header),
api_key_query: str = Security(api_key_query), # type: ignore api_key_query: str = Security(api_key_query),
): ):
token = api_key_header or api_key_query token = api_key_header or api_key_query
@ -200,8 +197,8 @@ async def require_admin_key(
async def require_invoice_key( async def require_invoice_key(
r: Request, r: Request,
api_key_header: str = Security(api_key_header), # type: ignore api_key_header: str = Security(api_key_header),
api_key_query: str = Security(api_key_query), # type: ignore api_key_query: str = Security(api_key_query),
): ):
token = api_key_header or api_key_query token = api_key_header or api_key_query

View file

@ -1,7 +1,6 @@
from http import HTTPStatus from http import HTTPStatus
from fastapi import Request from fastapi import Depends, Request
from fastapi.params import Depends
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse
@ -18,7 +17,7 @@ templates = Jinja2Templates(directory="templates")
@cashu_ext.get("/", response_class=HTMLResponse) @cashu_ext.get("/", response_class=HTMLResponse)
async def index( async def index(
request: Request, request: Request,
user: User = Depends(check_user_exists), # type: ignore user: User = Depends(check_user_exists),
): ):
return cashu_renderer().TemplateResponse( return cashu_renderer().TemplateResponse(
"cashu/index.html", {"request": request, "user": user.dict()} "cashu/index.html", {"request": request, "user": user.dict()}

View file

@ -1,10 +1,7 @@
import json
import math import math
from http import HTTPStatus from http import HTTPStatus
from typing import Dict, List, Union from typing import Dict, List, Union
import httpx
# -------- cashu imports # -------- cashu imports
from cashu.core.base import ( from cashu.core.base import (
BlindedSignature, BlindedSignature,
@ -17,14 +14,10 @@ from cashu.core.base import (
MeltRequest, MeltRequest,
MintRequest, MintRequest,
PostSplitResponse, PostSplitResponse,
Proof,
SplitRequest, SplitRequest,
) )
from fastapi import Query from fastapi import Depends, Query
from fastapi.params import Depends
from lnurl import decode as decode_lnurl
from loguru import logger from loguru import logger
from secp256k1 import PublicKey
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits import bolt11 from lnbits import bolt11
@ -35,7 +28,6 @@ from lnbits.core.services import (
fee_reserve, fee_reserve,
pay_invoice, pay_invoice,
) )
from lnbits.core.views.api import api_payment
from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key
from lnbits.helpers import urlsafe_short_hash from lnbits.helpers import urlsafe_short_hash
from lnbits.wallets.base import PaymentStatus from lnbits.wallets.base import PaymentStatus
@ -63,7 +55,7 @@ if not LIGHTNING:
@cashu_ext.get("/api/v1/mints", status_code=HTTPStatus.OK) @cashu_ext.get("/api/v1/mints", status_code=HTTPStatus.OK)
async def api_cashus( async def api_cashus(
all_wallets: bool = Query(False), wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore all_wallets: bool = Query(False), wallet: WalletTypeInfo = Depends(get_key_type)
): ):
""" """
Get all mints of this wallet. Get all mints of this wallet.
@ -80,7 +72,7 @@ async def api_cashus(
@cashu_ext.post("/api/v1/mints", status_code=HTTPStatus.CREATED) @cashu_ext.post("/api/v1/mints", status_code=HTTPStatus.CREATED)
async def api_cashu_create( async def api_cashu_create(
data: Cashu, data: Cashu,
wallet: WalletTypeInfo = Depends(get_key_type), # type: ignore wallet: WalletTypeInfo = Depends(get_key_type),
): ):
""" """
Create a new mint for this wallet. Create a new mint for this wallet.
@ -98,7 +90,7 @@ async def api_cashu_create(
@cashu_ext.delete("/api/v1/mints/{cashu_id}") @cashu_ext.delete("/api/v1/mints/{cashu_id}")
async def api_cashu_delete( async def api_cashu_delete(
cashu_id: str, wallet: WalletTypeInfo = Depends(require_admin_key) # type: ignore cashu_id: str, wallet: WalletTypeInfo = Depends(require_admin_key)
): ):
""" """
Delete an existing cashu mint. Delete an existing cashu mint.

View file

@ -1,7 +1,6 @@
from typing import List from typing import List
from fastapi import Request, WebSocket, WebSocketDisconnect from fastapi import Depends, Request
from fastapi.params import Depends
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from starlette.responses import HTMLResponse # type: ignore from starlette.responses import HTMLResponse # type: ignore
@ -9,15 +8,12 @@ from lnbits.core.models import User
from lnbits.decorators import check_user_exists from lnbits.decorators import check_user_exists
from . import copilot_ext, copilot_renderer from . import copilot_ext, copilot_renderer
from .crud import get_copilot
templates = Jinja2Templates(directory="templates") templates = Jinja2Templates(directory="templates")
@copilot_ext.get("/", response_class=HTMLResponse) @copilot_ext.get("/", response_class=HTMLResponse)
async def index( async def index(request: Request, user: User = Depends(check_user_exists)):
request: Request, user: User = Depends(check_user_exists) # type: ignore
):
return copilot_renderer().TemplateResponse( return copilot_renderer().TemplateResponse(
"copilot/index.html", {"request": request, "user": user.dict()} "copilot/index.html", {"request": request, "user": user.dict()}
) )

View file

@ -1,8 +1,6 @@
from http import HTTPStatus from http import HTTPStatus
from fastapi import Request from fastapi import Depends, Query, Request
from fastapi.param_functions import Query
from fastapi.params import Depends
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits.core.services import websocketUpdater from lnbits.core.services import websocketUpdater
@ -22,9 +20,7 @@ from .models import CreateCopilotData
@copilot_ext.get("/api/v1/copilot") @copilot_ext.get("/api/v1/copilot")
async def api_copilots_retrieve( async def api_copilots_retrieve(wallet: WalletTypeInfo = Depends(get_key_type)):
req: Request, wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore
):
wallet_user = wallet.wallet.user wallet_user = wallet.wallet.user
copilots = [copilot.dict() for copilot in await get_copilots(wallet_user)] copilots = [copilot.dict() for copilot in await get_copilots(wallet_user)]
try: try:
@ -37,7 +33,7 @@ async def api_copilots_retrieve(
async def api_copilot_retrieve( async def api_copilot_retrieve(
req: Request, req: Request,
copilot_id: str = Query(None), copilot_id: str = Query(None),
wallet: WalletTypeInfo = Depends(get_key_type), # type: ignore wallet: WalletTypeInfo = Depends(get_key_type),
): ):
copilot = await get_copilot(copilot_id) copilot = await get_copilot(copilot_id)
if not copilot: if not copilot:
@ -54,7 +50,7 @@ async def api_copilot_retrieve(
async def api_copilot_create_or_update( async def api_copilot_create_or_update(
data: CreateCopilotData, data: CreateCopilotData,
copilot_id: str = Query(None), copilot_id: str = Query(None),
wallet: WalletTypeInfo = Depends(require_admin_key), # type: ignore wallet: WalletTypeInfo = Depends(require_admin_key),
): ):
data.user = wallet.wallet.user data.user = wallet.wallet.user
data.wallet = wallet.wallet.id data.wallet = wallet.wallet.id
@ -68,7 +64,7 @@ async def api_copilot_create_or_update(
@copilot_ext.delete("/api/v1/copilot/{copilot_id}") @copilot_ext.delete("/api/v1/copilot/{copilot_id}")
async def api_copilot_delete( async def api_copilot_delete(
copilot_id: str = Query(None), copilot_id: str = Query(None),
wallet: WalletTypeInfo = Depends(require_admin_key), # type: ignore wallet: WalletTypeInfo = Depends(require_admin_key),
): ):
copilot = await get_copilot(copilot_id) copilot = await get_copilot(copilot_id)

View file

@ -1,5 +1,4 @@
from fastapi import Request from fastapi import Depends, Request
from fastapi.params import Depends
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse
from lnbits.core.models import User from lnbits.core.models import User
@ -9,9 +8,7 @@ from . import discordbot_ext, discordbot_renderer
@discordbot_ext.get("/", response_class=HTMLResponse) @discordbot_ext.get("/", response_class=HTMLResponse)
async def index( async def index(request: Request, user: User = Depends(check_user_exists)):
request: Request, user: User = Depends(check_user_exists) # type: ignore
):
return discordbot_renderer().TemplateResponse( return discordbot_renderer().TemplateResponse(
"discordbot/index.html", {"request": request, "user": user.dict()} "discordbot/index.html", {"request": request, "user": user.dict()}
) )

View file

@ -1,7 +1,6 @@
from http import HTTPStatus from http import HTTPStatus
from fastapi import Query from fastapi import Depends, Query
from fastapi.params import Depends
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits.core import update_user_extension from lnbits.core import update_user_extension
@ -28,16 +27,14 @@ from .models import CreateUserData, CreateUserWallet
@discordbot_ext.get("/api/v1/users", status_code=HTTPStatus.OK) @discordbot_ext.get("/api/v1/users", status_code=HTTPStatus.OK)
async def api_discordbot_users( async def api_discordbot_users(
wallet: WalletTypeInfo = Depends(get_key_type), # type: ignore wallet: WalletTypeInfo = Depends(get_key_type),
): ):
user_id = wallet.wallet.user user_id = wallet.wallet.user
return [user.dict() for user in await get_discordbot_users(user_id)] return [user.dict() for user in await get_discordbot_users(user_id)]
@discordbot_ext.get("/api/v1/users/{user_id}", status_code=HTTPStatus.OK) @discordbot_ext.get("/api/v1/users/{user_id}", status_code=HTTPStatus.OK)
async def api_discordbot_user( async def api_discordbot_user(user_id, wallet: WalletTypeInfo = Depends(get_key_type)):
user_id, wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore
):
user = await get_discordbot_user(user_id) user = await get_discordbot_user(user_id)
if user: if user:
return user.dict() return user.dict()
@ -45,7 +42,7 @@ async def api_discordbot_user(
@discordbot_ext.post("/api/v1/users", status_code=HTTPStatus.CREATED) @discordbot_ext.post("/api/v1/users", status_code=HTTPStatus.CREATED)
async def api_discordbot_users_create( async def api_discordbot_users_create(
data: CreateUserData, wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore data: CreateUserData, wallet: WalletTypeInfo = Depends(get_key_type)
): ):
user = await create_discordbot_user(data) user = await create_discordbot_user(data)
full = user.dict() full = user.dict()
@ -57,7 +54,7 @@ async def api_discordbot_users_create(
@discordbot_ext.delete("/api/v1/users/{user_id}") @discordbot_ext.delete("/api/v1/users/{user_id}")
async def api_discordbot_users_delete( async def api_discordbot_users_delete(
user_id, wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore user_id, wallet: WalletTypeInfo = Depends(get_key_type)
): ):
user = await get_discordbot_user(user_id) user = await get_discordbot_user(user_id)
if not user: if not user:
@ -89,7 +86,7 @@ async def api_discordbot_activate_extension(
@discordbot_ext.post("/api/v1/wallets") @discordbot_ext.post("/api/v1/wallets")
async def api_discordbot_wallets_create( async def api_discordbot_wallets_create(
data: CreateUserWallet, wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore data: CreateUserWallet, wallet: WalletTypeInfo = Depends(get_key_type)
): ):
user = await create_discordbot_wallet( user = await create_discordbot_wallet(
user_id=data.user_id, wallet_name=data.wallet_name, admin_id=data.admin_id user_id=data.user_id, wallet_name=data.wallet_name, admin_id=data.admin_id
@ -99,7 +96,7 @@ async def api_discordbot_wallets_create(
@discordbot_ext.get("/api/v1/wallets") @discordbot_ext.get("/api/v1/wallets")
async def api_discordbot_wallets( async def api_discordbot_wallets(
wallet: WalletTypeInfo = Depends(get_key_type), # type: ignore wallet: WalletTypeInfo = Depends(get_key_type),
): ):
admin_id = wallet.wallet.user admin_id = wallet.wallet.user
return await get_discordbot_wallets(admin_id) return await get_discordbot_wallets(admin_id)
@ -107,21 +104,21 @@ async def api_discordbot_wallets(
@discordbot_ext.get("/api/v1/transactions/{wallet_id}") @discordbot_ext.get("/api/v1/transactions/{wallet_id}")
async def api_discordbot_wallet_transactions( async def api_discordbot_wallet_transactions(
wallet_id, wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore wallet_id, wallet: WalletTypeInfo = Depends(get_key_type)
): ):
return await get_discordbot_wallet_transactions(wallet_id) return await get_discordbot_wallet_transactions(wallet_id)
@discordbot_ext.get("/api/v1/wallets/{user_id}") @discordbot_ext.get("/api/v1/wallets/{user_id}")
async def api_discordbot_users_wallets( async def api_discordbot_users_wallets(
user_id, wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore user_id, wallet: WalletTypeInfo = Depends(get_key_type)
): ):
return await get_discordbot_users_wallets(user_id) return await get_discordbot_users_wallets(user_id)
@discordbot_ext.delete("/api/v1/wallets/{wallet_id}") @discordbot_ext.delete("/api/v1/wallets/{wallet_id}")
async def api_discordbot_wallets_delete( async def api_discordbot_wallets_delete(
wallet_id, wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore wallet_id, wallet: WalletTypeInfo = Depends(get_key_type)
): ):
get_wallet = await get_discordbot_wallet(wallet_id) get_wallet = await get_discordbot_wallet(wallet_id)
if not get_wallet: if not get_wallet:

View file

@ -1,5 +1,4 @@
from fastapi import FastAPI, Request from fastapi import Depends, Request
from fastapi.params import Depends
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse
@ -14,7 +13,7 @@ templates = Jinja2Templates(directory="templates")
@example_ext.get("/", response_class=HTMLResponse) @example_ext.get("/", response_class=HTMLResponse)
async def index( async def index(
request: Request, request: Request,
user: User = Depends(check_user_exists), # type: ignore user: User = Depends(check_user_exists),
): ):
return example_renderer().TemplateResponse( return example_renderer().TemplateResponse(
"example/index.html", {"request": request, "user": user.dict()} "example/index.html", {"request": request, "user": user.dict()}

View file

@ -1,7 +1,6 @@
from http import HTTPStatus from http import HTTPStatus
from fastapi import Request from fastapi import Depends, Request
from fastapi.params import Depends
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse
@ -17,9 +16,7 @@ templates = Jinja2Templates(directory="templates")
@jukebox_ext.get("/", response_class=HTMLResponse) @jukebox_ext.get("/", response_class=HTMLResponse)
async def index( async def index(request: Request, user: User = Depends(check_user_exists)):
request: Request, user: User = Depends(check_user_exists) # type: ignore
):
return jukebox_renderer().TemplateResponse( return jukebox_renderer().TemplateResponse(
"jukebox/index.html", {"request": request, "user": user.dict()} "jukebox/index.html", {"request": request, "user": user.dict()}
) )

View file

@ -3,10 +3,9 @@ import json
from http import HTTPStatus from http import HTTPStatus
import httpx import httpx
from fastapi.param_functions import Query from fastapi import Depends, Query
from fastapi.params import Depends
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse # type: ignore from starlette.responses import HTMLResponse
from lnbits.core.services import create_invoice from lnbits.core.services import create_invoice
from lnbits.core.views.api import api_payment from lnbits.core.views.api import api_payment
@ -28,7 +27,7 @@ from .models import CreateJukeboxPayment, CreateJukeLinkData
@jukebox_ext.get("/api/v1/jukebox") @jukebox_ext.get("/api/v1/jukebox")
async def api_get_jukeboxs( async def api_get_jukeboxs(
wallet: WalletTypeInfo = Depends(require_admin_key), # type: ignore wallet: WalletTypeInfo = Depends(require_admin_key),
): ):
wallet_user = wallet.wallet.user wallet_user = wallet.wallet.user

View file

@ -1,12 +1,12 @@
import json import json
from typing import Optional from typing import Optional
from fastapi.params import Query from fastapi import Query
from lnurl import Lnurl from lnurl import Lnurl
from lnurl import encode as lnurl_encode # type: ignore from lnurl import encode as lnurl_encode # type: ignore
from lnurl.models import LnurlPaySuccessAction, UrlAction # type: ignore from lnurl.models import LnurlPaySuccessAction, UrlAction # type: ignore
from lnurl.types import LnurlPayMetadata # type: ignore from lnurl.types import LnurlPayMetadata # type: ignore
from pydantic.main import BaseModel from pydantic import BaseModel
from starlette.requests import Request from starlette.requests import Request

View file

@ -1,8 +1,7 @@
# type: ignore # type: ignore
from os import getenv from os import getenv
from fastapi import Request from fastapi import Depends, Request
from fastapi.params import Depends
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from pyngrok import conf, ngrok from pyngrok import conf, ngrok
@ -35,9 +34,7 @@ ngrok_tunnel = ngrok.connect(port)
@ngrok_ext.get("/") @ngrok_ext.get("/")
async def index( async def index(request: Request, user: User = Depends(check_user_exists)):
request: Request, user: User = Depends(check_user_exists) # type: ignore
):
return ngrok_renderer().TemplateResponse( return ngrok_renderer().TemplateResponse(
"ngrok/index.html", {"request": request, "ngrok": string5, "user": user.dict()} "ngrok/index.html", {"request": request, "ngrok": string5, "user": user.dict()}
) )

View file

@ -3,9 +3,7 @@ from http import HTTPStatus
from io import BytesIO from io import BytesIO
import pyqrcode import pyqrcode
from fastapi import Request from fastapi import Depends, Query, Request
from fastapi.param_functions import Query
from fastapi.params import Depends
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse
@ -28,9 +26,7 @@ templates = Jinja2Templates(directory="templates")
@satsdice_ext.get("/", response_class=HTMLResponse) @satsdice_ext.get("/", response_class=HTMLResponse)
async def index( async def index(request: Request, user: User = Depends(check_user_exists)):
request: Request, user: User = Depends(check_user_exists) # type: ignore
):
return satsdice_renderer().TemplateResponse( return satsdice_renderer().TemplateResponse(
"satsdice/index.html", {"request": request, "user": user.dict()} "satsdice/index.html", {"request": request, "user": user.dict()}
) )
@ -108,7 +104,7 @@ async def displaywin(
data = CreateSatsDiceWithdraw( data = CreateSatsDiceWithdraw(
satsdice_pay=satsdicelink.id, satsdice_pay=satsdicelink.id,
value=paylink.value * satsdicelink.multiplier, value=int(paylink.value * satsdicelink.multiplier),
payment_hash=payment_hash, payment_hash=payment_hash,
used=0, used=0,
) )

View file

@ -1,8 +1,6 @@
from http import HTTPStatus from http import HTTPStatus
from fastapi import Request from fastapi import Depends, Query, Request
from fastapi.param_functions import Query
from fastapi.params import Depends
from lnurl.exceptions import InvalidUrl as LnurlInvalidUrl # type: ignore from lnurl.exceptions import InvalidUrl as LnurlInvalidUrl # type: ignore
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
@ -26,7 +24,7 @@ from .models import CreateSatsDiceLink
@satsdice_ext.get("/api/v1/links") @satsdice_ext.get("/api/v1/links")
async def api_links( async def api_links(
request: Request, request: Request,
wallet: WalletTypeInfo = Depends(get_key_type), # type: ignore wallet: WalletTypeInfo = Depends(get_key_type),
all_wallets: bool = Query(False), all_wallets: bool = Query(False),
): ):
wallet_ids = [wallet.wallet.id] wallet_ids = [wallet.wallet.id]
@ -49,7 +47,7 @@ async def api_links(
@satsdice_ext.get("/api/v1/links/{link_id}") @satsdice_ext.get("/api/v1/links/{link_id}")
async def api_link_retrieve( async def api_link_retrieve(
link_id: str = Query(None), wallet: WalletTypeInfo = Depends(get_key_type) # type: ignore link_id: str = Query(None), wallet: WalletTypeInfo = Depends(get_key_type)
): ):
link = await get_satsdice_pay(link_id) link = await get_satsdice_pay(link_id)
@ -70,7 +68,7 @@ async def api_link_retrieve(
@satsdice_ext.put("/api/v1/links/{link_id}", status_code=HTTPStatus.OK) @satsdice_ext.put("/api/v1/links/{link_id}", status_code=HTTPStatus.OK)
async def api_link_create_or_update( async def api_link_create_or_update(
data: CreateSatsDiceLink, data: CreateSatsDiceLink,
wallet: WalletTypeInfo = Depends(get_key_type), # type: ignore wallet: WalletTypeInfo = Depends(get_key_type),
link_id: str = Query(None), link_id: str = Query(None),
): ):
if data.min_bet > data.max_bet: if data.min_bet > data.max_bet:
@ -98,7 +96,7 @@ async def api_link_create_or_update(
@satsdice_ext.delete("/api/v1/links/{link_id}") @satsdice_ext.delete("/api/v1/links/{link_id}")
async def api_link_delete( async def api_link_delete(
wallet: WalletTypeInfo = Depends(get_key_type), # type: ignore wallet: WalletTypeInfo = Depends(get_key_type),
link_id: str = Query(None), link_id: str = Query(None),
): ):
link = await get_satsdice_pay(link_id) link = await get_satsdice_pay(link_id)

View file

@ -1,8 +1,7 @@
import json import json
from http import HTTPStatus from http import HTTPStatus
from fastapi import Query from fastapi import Depends, Query
from fastapi.params import Depends
from loguru import logger from loguru import logger
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException

View file

@ -1,26 +1,26 @@
from fastapi.params import Query from fastapi import Query
from pydantic.main import BaseModel from pydantic import BaseModel
class CreateDomain(BaseModel): class CreateDomain(BaseModel):
wallet: str = Query(...) # type: ignore wallet: str = Query(...)
domain: str = Query(...) # type: ignore domain: str = Query(...)
cf_token: str = Query(...) # type: ignore cf_token: str = Query(...)
cf_zone_id: str = Query(...) # type: ignore cf_zone_id: str = Query(...)
webhook: str = Query("") # type: ignore webhook: str = Query("")
description: str = Query(..., min_length=0) # type: ignore description: str = Query(..., min_length=0)
cost: int = Query(..., ge=0) # type: ignore cost: int = Query(..., ge=0)
allowed_record_types: str = Query(...) # type: ignore allowed_record_types: str = Query(...)
class CreateSubdomain(BaseModel): class CreateSubdomain(BaseModel):
domain: str = Query(...) # type: ignore domain: str = Query(...)
subdomain: str = Query(...) # type: ignore subdomain: str = Query(...)
email: str = Query(...) # type: ignore email: str = Query(...)
ip: str = Query(...) # type: ignore ip: str = Query(...)
sats: int = Query(..., ge=0) # type: ignore sats: int = Query(..., ge=0)
duration: int = Query(...) # type: ignore duration: int = Query(...)
record_type: str = Query(...) # type: ignore record_type: str = Query(...)
class Domains(BaseModel): class Domains(BaseModel):

View file

@ -1,7 +1,6 @@
from http import HTTPStatus from http import HTTPStatus
from fastapi import Request from fastapi import Depends, Request
from fastapi.params import Depends
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse

View file

@ -1,7 +1,6 @@
from http import HTTPStatus from http import HTTPStatus
from fastapi import Query from fastapi import Depends, Query
from fastapi.params import Depends
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits.core.crud import get_user from lnbits.core.crud import get_user
@ -29,7 +28,7 @@ from .crud import (
@subdomains_ext.get("/api/v1/domains") @subdomains_ext.get("/api/v1/domains")
async def api_domains( async def api_domains(
g: WalletTypeInfo = Depends(get_key_type), # type: ignore g: WalletTypeInfo = Depends(get_key_type),
all_wallets: bool = Query(False), all_wallets: bool = Query(False),
): ):
wallet_ids = [g.wallet.id] wallet_ids = [g.wallet.id]
@ -47,7 +46,7 @@ async def api_domains(
async def api_domain_create( async def api_domain_create(
data: CreateDomain, data: CreateDomain,
domain_id=None, domain_id=None,
g: WalletTypeInfo = Depends(get_key_type), # type: ignore g: WalletTypeInfo = Depends(get_key_type),
): ):
if domain_id: if domain_id:
domain = await get_domain(domain_id) domain = await get_domain(domain_id)
@ -68,9 +67,7 @@ async def api_domain_create(
@subdomains_ext.delete("/api/v1/domains/{domain_id}") @subdomains_ext.delete("/api/v1/domains/{domain_id}")
async def api_domain_delete( async def api_domain_delete(domain_id, g: WalletTypeInfo = Depends(get_key_type)):
domain_id, g: WalletTypeInfo = Depends(get_key_type) # type: ignore
):
domain = await get_domain(domain_id) domain = await get_domain(domain_id)
if not domain: if not domain:
@ -89,7 +86,7 @@ async def api_domain_delete(
@subdomains_ext.get("/api/v1/subdomains") @subdomains_ext.get("/api/v1/subdomains")
async def api_subdomains( async def api_subdomains(
all_wallets: bool = Query(False), g: WalletTypeInfo = Depends(get_key_type) # type: ignore all_wallets: bool = Query(False), g: WalletTypeInfo = Depends(get_key_type)
): ):
wallet_ids = [g.wallet.id] wallet_ids = [g.wallet.id]
@ -169,6 +166,7 @@ async def api_subdomain_make_subdomain(domain_id, data: CreateSubdomain):
@subdomains_ext.get("/api/v1/subdomains/{payment_hash}") @subdomains_ext.get("/api/v1/subdomains/{payment_hash}")
async def api_subdomain_send_subdomain(payment_hash): async def api_subdomain_send_subdomain(payment_hash):
subdomain = await get_subdomain(payment_hash) subdomain = await get_subdomain(payment_hash)
assert subdomain
try: try:
status = await check_transaction_status(subdomain.wallet, payment_hash) status = await check_transaction_status(subdomain.wallet, payment_hash)
is_paid = not status.pending is_paid = not status.pending
@ -182,9 +180,7 @@ async def api_subdomain_send_subdomain(payment_hash):
@subdomains_ext.delete("/api/v1/subdomains/{subdomain_id}") @subdomains_ext.delete("/api/v1/subdomains/{subdomain_id}")
async def api_subdomain_delete( async def api_subdomain_delete(subdomain_id, g: WalletTypeInfo = Depends(get_key_type)):
subdomain_id, g: WalletTypeInfo = Depends(get_key_type) # type: ignore
):
subdomain = await get_subdomain(subdomain_id) subdomain = await get_subdomain(subdomain_id)
if not subdomain: if not subdomain:

View file

@ -1,5 +1,4 @@
from fastapi import Request from fastapi import Depends, Request
from fastapi.params import Depends
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse
from lnbits.core.models import User from lnbits.core.models import User
@ -9,9 +8,7 @@ from . import usermanager_ext, usermanager_renderer
@usermanager_ext.get("/", response_class=HTMLResponse) @usermanager_ext.get("/", response_class=HTMLResponse)
async def index( async def index(request: Request, user: User = Depends(check_user_exists)):
request: Request, user: User = Depends(check_user_exists) # type: ignore
):
return usermanager_renderer().TemplateResponse( return usermanager_renderer().TemplateResponse(
"usermanager/index.html", {"request": request, "user": user.dict()} "usermanager/index.html", {"request": request, "user": user.dict()}
) )

View file

@ -1,7 +1,6 @@
from http import HTTPStatus from http import HTTPStatus
from fastapi import Query from fastapi import Depends, Query
from fastapi.params import Depends
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits.core import update_user_extension from lnbits.core import update_user_extension
@ -26,7 +25,7 @@ from .models import CreateUserData, CreateUserWallet
@usermanager_ext.get("/api/v1/users", status_code=HTTPStatus.OK) @usermanager_ext.get("/api/v1/users", status_code=HTTPStatus.OK)
async def api_usermanager_users( async def api_usermanager_users(
wallet: WalletTypeInfo = Depends(require_admin_key), # type: ignore wallet: WalletTypeInfo = Depends(require_admin_key),
): ):
user_id = wallet.wallet.user user_id = wallet.wallet.user
return [user.dict() for user in await get_usermanager_users(user_id)] return [user.dict() for user in await get_usermanager_users(user_id)]
@ -101,7 +100,7 @@ async def api_usermanager_wallets_create(data: CreateUserWallet):
@usermanager_ext.get("/api/v1/wallets") @usermanager_ext.get("/api/v1/wallets")
async def api_usermanager_wallets( async def api_usermanager_wallets(
wallet: WalletTypeInfo = Depends(require_admin_key), # type: ignore wallet: WalletTypeInfo = Depends(require_admin_key),
): ):
admin_id = wallet.wallet.user admin_id = wallet.wallet.user
return [wallet.dict() for wallet in await get_usermanager_wallets(admin_id)] return [wallet.dict() for wallet in await get_usermanager_wallets(admin_id)]