feat: move all non-api routes to their own router
This unclutters the docs page a bit by making html routes collapsible.
This commit is contained in:
parent
0806ccfbbd
commit
6f38fdc39b
2 changed files with 18 additions and 13 deletions
|
|
@ -30,6 +30,7 @@ from .tasks import (
|
||||||
)
|
)
|
||||||
from .settings import WALLET
|
from .settings import WALLET
|
||||||
from .requestvars import g, request_global
|
from .requestvars import g, request_global
|
||||||
|
from .core.views.generic import core_html_routes
|
||||||
import lnbits.settings
|
import lnbits.settings
|
||||||
|
|
||||||
async def create_app(config_object="lnbits.settings") -> FastAPI:
|
async def create_app(config_object="lnbits.settings") -> FastAPI:
|
||||||
|
|
@ -106,8 +107,9 @@ def check_funding_source(app: FastAPI) -> None:
|
||||||
|
|
||||||
|
|
||||||
def register_routes(app: FastAPI) -> None:
|
def register_routes(app: FastAPI) -> None:
|
||||||
"""Register Flask blueprints / LNbits extensions."""
|
"""Register FastAPI routes / LNbits extensions."""
|
||||||
app.include_router(core_app)
|
app.include_router(core_app)
|
||||||
|
app.include_router(core_html_routes)
|
||||||
|
|
||||||
for ext in get_valid_extensions():
|
for ext in get_valid_extensions():
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
from fastapi.params import Query
|
||||||
|
from fastapi.routing import APIRouter
|
||||||
from lnbits.requestvars import g
|
from lnbits.requestvars import g
|
||||||
from os import path
|
from os import path
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
|
|
@ -22,20 +24,20 @@ from ..crud import (
|
||||||
from ..services import redeem_lnurl_withdraw, pay_invoice
|
from ..services import redeem_lnurl_withdraw, pay_invoice
|
||||||
from fastapi import FastAPI, Request
|
from fastapi import FastAPI, Request
|
||||||
from fastapi.responses import FileResponse
|
from fastapi.responses import FileResponse
|
||||||
from lnbits.jinja2_templating import Jinja2Templates
|
|
||||||
|
|
||||||
|
core_html_routes: APIRouter = APIRouter(tags=["Core NON-API Website Routes"])
|
||||||
|
|
||||||
@core_app.get("/favicon.ico")
|
@core_html_routes.get("/favicon.ico")
|
||||||
async def favicon():
|
async def favicon():
|
||||||
return FileResponse("lnbits/core/static/favicon.ico")
|
return FileResponse("lnbits/core/static/favicon.ico")
|
||||||
|
|
||||||
|
|
||||||
@core_app.get("/", response_class=HTMLResponse)
|
@core_html_routes.get("/", response_class=HTMLResponse)
|
||||||
async def home(request: Request, lightning: str = None):
|
async def home(request: Request, lightning: str = None):
|
||||||
return g().templates.TemplateResponse("core/index.html", {"request": request, "lnurl": lightning})
|
return g().templates.TemplateResponse("core/index.html", {"request": request, "lnurl": lightning})
|
||||||
|
|
||||||
|
|
||||||
@core_app.get("/extensions")
|
@core_html_routes.get("/extensions")
|
||||||
@validate_uuids(["usr"], required=True)
|
@validate_uuids(["usr"], required=True)
|
||||||
@check_user_exists()
|
@check_user_exists()
|
||||||
async def extensions(enable: str, disable: str):
|
async def extensions(enable: str, disable: str):
|
||||||
|
|
@ -58,10 +60,11 @@ async def extensions(enable: str, disable: str):
|
||||||
return await templates.TemplateResponse("core/extensions.html", {"request": request, "user": get_user(g.user.id)})
|
return await templates.TemplateResponse("core/extensions.html", {"request": request, "user": get_user(g.user.id)})
|
||||||
|
|
||||||
|
|
||||||
@core_app.get("/wallet{usr}{wal}{nme}")
|
@core_html_routes.get("/wallet")
|
||||||
#Not sure how to validate
|
#Not sure how to validate
|
||||||
@validate_uuids(["usr", "wal"])
|
@validate_uuids(["usr", "wal"])
|
||||||
async def wallet(request: Request, usr: Optional[str], wal: Optional[str], nme: Optional[str]):
|
async def wallet(request: Request, usr: Optional[str] = Query(None),
|
||||||
|
wal: Optional[str]=Query(None, description=""), nme: Optional[str]=Query(None)):
|
||||||
user_id = usr
|
user_id = usr
|
||||||
wallet_id = wal
|
wallet_id = wal
|
||||||
wallet_name = nme
|
wallet_name = nme
|
||||||
|
|
@ -101,7 +104,7 @@ async def wallet(request: Request, usr: Optional[str], wal: Optional[str], nme:
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@core_app.get("/withdraw")
|
@core_html_routes.get("/withdraw")
|
||||||
@validate_uuids(["usr", "wal"], required=True)
|
@validate_uuids(["usr", "wal"], required=True)
|
||||||
async def lnurl_full_withdraw():
|
async def lnurl_full_withdraw():
|
||||||
user = await get_user(request.args.get("usr"))
|
user = await get_user(request.args.get("usr"))
|
||||||
|
|
@ -130,7 +133,7 @@ async def lnurl_full_withdraw():
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@core_app.get("/withdraw/cb")
|
@core_html_routes.get("/withdraw/cb")
|
||||||
@validate_uuids(["usr", "wal"], required=True)
|
@validate_uuids(["usr", "wal"], required=True)
|
||||||
async def lnurl_full_withdraw_callback():
|
async def lnurl_full_withdraw_callback():
|
||||||
user = await get_user(request.args.get("usr"))
|
user = await get_user(request.args.get("usr"))
|
||||||
|
|
@ -158,7 +161,7 @@ async def lnurl_full_withdraw_callback():
|
||||||
return {"status": "OK"}
|
return {"status": "OK"}
|
||||||
|
|
||||||
|
|
||||||
@core_app.get("/deletewallet")
|
@core_html_routes.get("/deletewallet")
|
||||||
@validate_uuids(["usr", "wal"], required=True)
|
@validate_uuids(["usr", "wal"], required=True)
|
||||||
@check_user_exists()
|
@check_user_exists()
|
||||||
async def deletewallet():
|
async def deletewallet():
|
||||||
|
|
@ -177,7 +180,7 @@ async def deletewallet():
|
||||||
return redirect(url_for("core.home"))
|
return redirect(url_for("core.home"))
|
||||||
|
|
||||||
|
|
||||||
@core_app.get("/withdraw/notify/{service}")
|
@core_html_routes.get("/withdraw/notify/{service}")
|
||||||
@validate_uuids(["wal"], required=True)
|
@validate_uuids(["wal"], required=True)
|
||||||
async def lnurl_balance_notify(service: str):
|
async def lnurl_balance_notify(service: str):
|
||||||
bc = await get_balance_check(request.args.get("wal"), service)
|
bc = await get_balance_check(request.args.get("wal"), service)
|
||||||
|
|
@ -185,7 +188,7 @@ async def lnurl_balance_notify(service: str):
|
||||||
redeem_lnurl_withdraw(bc.wallet, bc.url)
|
redeem_lnurl_withdraw(bc.wallet, bc.url)
|
||||||
|
|
||||||
|
|
||||||
@core_app.get("/lnurlwallet")
|
@core_html_routes.get("/lnurlwallet")
|
||||||
async def lnurlwallet():
|
async def lnurlwallet():
|
||||||
async with db.connect() as conn:
|
async with db.connect() as conn:
|
||||||
account = await create_account(conn=conn)
|
account = await create_account(conn=conn)
|
||||||
|
|
@ -204,7 +207,7 @@ async def lnurlwallet():
|
||||||
return redirect(url_for("core.wallet", usr=user.id, wal=wallet.id))
|
return redirect(url_for("core.wallet", usr=user.id, wal=wallet.id))
|
||||||
|
|
||||||
|
|
||||||
@core_app.get("/manifest/{usr}.webmanifest")
|
@core_html_routes.get("/manifest/{usr}.webmanifest")
|
||||||
async def manifest(usr: str):
|
async def manifest(usr: str):
|
||||||
user = await get_user(usr)
|
user = await get_user(usr)
|
||||||
if not user:
|
if not user:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue