lnbits-legend/lnbits/extensions/lnaddress/views.py

51 lines
1.5 KiB
Python
Raw Normal View History

2021-10-29 16:43:26 +01:00
from http import HTTPStatus
from urllib.parse import urlparse
2021-10-29 16:43:26 +01:00
from fastapi import Request
from fastapi.params import Depends
from fastapi.templating import Jinja2Templates
from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse
from lnbits.core.crud import get_wallet
from lnbits.core.models import User
from lnbits.decorators import check_user_exists
from . import lnaddress_ext, lnaddress_renderer
from .crud import get_domain, purge_addresses
templates = Jinja2Templates(directory="templates")
@lnaddress_ext.get("/", response_class=HTMLResponse)
async def index(request: Request, user: User = Depends(check_user_exists)):
2021-11-26 05:58:20 +00:00
return lnaddress_renderer().TemplateResponse(
"lnaddress/index.html", {"request": request, "user": user.dict()}
)
2021-10-29 16:43:26 +01:00
2021-11-25 16:24:11 +00:00
@lnaddress_ext.get("/{domain_id}", response_class=HTMLResponse)
2021-10-29 16:43:26 +01:00
async def display(domain_id, request: Request):
domain = await get_domain(domain_id)
if not domain:
raise HTTPException(
status_code=HTTPStatus.NOT_FOUND, detail="Domain does not exist."
)
2021-11-25 16:24:11 +00:00
await purge_addresses(domain_id)
2021-10-29 16:43:26 +01:00
wallet = await get_wallet(domain.wallet)
url = urlparse(str(request.url))
2022-01-30 19:43:30 +00:00
2021-10-29 16:43:26 +01:00
return lnaddress_renderer().TemplateResponse(
2021-11-26 05:58:20 +00:00
"lnaddress/display.html",
{
2021-10-29 16:43:26 +01:00
"request": request,
2021-11-26 05:58:20 +00:00
"domain_id": domain.id,
2021-10-29 16:43:26 +01:00
"domain_domain": domain.domain,
"domain_cost": domain.cost,
2021-11-26 05:58:20 +00:00
"domain_wallet_inkey": wallet.inkey,
2022-01-30 19:43:30 +00:00
"root_url": f"{url.scheme}://{url.netloc}",
2021-11-26 05:58:20 +00:00
},
2021-10-29 16:43:26 +01:00
)