45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from fastapi import APIRouter, Depends, Request
|
|
from db.handlers.access import AccessLevelHandler
|
|
from db.handlers.user import UserHandler
|
|
from utils import requestDict, logger, render
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/", name="userInfo", summary="Получение информации о пользователе")
|
|
async def get_user():
|
|
return
|
|
|
|
|
|
@router.post("/")
|
|
async def create_user():
|
|
return
|
|
|
|
|
|
@router.get("/login", name="Authentication", summary="Авторизация пользователя")
|
|
async def authenticationPage(request: Request):
|
|
return await render(request)
|
|
|
|
|
|
@router.post("/login")
|
|
async def authentication(
|
|
request_data: dict = Depends(requestDict),
|
|
):
|
|
resultData = {"status": "error", "user": {}, "access": {}}
|
|
login = request_data.get("body").get("login", None)
|
|
password = request_data.get("body").get("password", None)
|
|
if not login or not password:
|
|
logger.error("Не указан логин или пароль")
|
|
return resultData
|
|
userData = await UserHandler.auth(login, password)
|
|
if not userData:
|
|
return resultData
|
|
accessData = await AccessLevelHandler.get(userData["access_level_id"])
|
|
if not accessData:
|
|
return resultData
|
|
resultData["status"] = "ok"
|
|
resultData["user"] = userData
|
|
resultData["access"] = accessData
|
|
return resultData
|