Files
Blitz-Proxy/core/scripts/webpanel/routers/user/user.py
2025-02-03 00:51:56 +00:00

32 lines
950 B
Python

from fastapi import APIRouter, Depends, Form, HTTPException, Request
from fastapi.templating import Jinja2Templates
from fastapi.responses import RedirectResponse
from typing import Annotated
from pydantic import BaseModel
from ..api.v1.schema.user import AddUserInputBody, EditUserInputBody
from .viewmodel import User
import cli_api
router = APIRouter()
# TODO: Make this singleton or something
templates = Jinja2Templates(directory='templates')
@router.get('/')
async def users(request: Request):
try:
dict_users = cli_api.list_users()
if not dict_users:
raise HTTPException(status_code=404, detail='No users found.')
users: list[User] = [User.from_dict(key, value) for key, value in dict_users.items()]
return templates.TemplateResponse('users.html', {'users': users, 'request': request})
except Exception as e:
raise HTTPException(status_code=400, detail=f'Error: {str(e)}')