This commit is contained in:
2025-12-14 18:48:06 +03:00
parent ccec507033
commit 1a51349eed
17 changed files with 1081 additions and 134 deletions
+14 -3
View File
@@ -2,6 +2,7 @@ from datetime import date, datetime, timedelta
from fastapi import APIRouter, Depends, Request
from fastapi.responses import RedirectResponse
from db.handlers.access import AccessLevelHandler
from db.handlers.categories import CategoryHandler
from utils import render, requestDict, logger
from .user import router as user
@@ -181,14 +182,24 @@ async def post_requests(
"startDate": startDate.strftime("%Y-%m-%d"),
"endDate": endDate.strftime("%Y-%m-%d"),
}
# logger.info(resultData.get("data"))
case "users":
users = await UserHandler.getAll()
if users:
if isinstance(users, list):
if len(users) == 0:
resultData["status"] = "ok"
resultData["data"] = {
"users": [],
"accessLevels": [],
}
for user in users:
user.pop("hashed_password")
accessLevels = await AccessLevelHandler.getAll()
resultData["status"] = "ok"
resultData["data"] = users
resultData["data"] = {
"users": users,
"accessLevels": accessLevels,
}
# logger.info(resultData)
case _:
pass
return resultData
Binary file not shown.
Binary file not shown.
+56 -3
View File
@@ -12,9 +12,62 @@ async def get_user():
return
@router.post("/")
async def create_user():
return
@router.post("/", summary="Правка данных пользователя")
async def manage_user(request_data: dict = Depends(requestDict)):
response = {"status": "error"}
userData = request_data.get("body").get("userData", {})
action = request_data.get("body").get("action")
userId = request_data.get("body").get("userId")
match action:
case "create":
result = await UserHandler.add(userData, userId)
if result:
response["status"] = "ok"
case "update":
result = await UserHandler.edit(userData, user_id=userId)
if "error" not in result:
response["status"] = "ok"
else:
response["message"] = result["error"]
case "delete":
result = await UserHandler.delete(userData["id"], userId)
if "error" not in result:
response["status"] = "ok"
else:
response["message"] = result["error"]
case _:
logger.error(f"Неверное действие: {action}")
return response
@router.post("/level", summary="Правка уровня доступа")
async def manage_access_level(request_data: dict = Depends(requestDict)):
logger.info(request_data.get("body"))
action = request_data.get("body").get("action")
userId = request_data.get("body").get("userId")
levelData = request_data.get("body").get("changedLevelData")
match action:
case "create":
result = await AccessLevelHandler.add(levelData, userId)
if "error" not in result:
return {"status": "ok"}
else:
return {"status": "error", "message": result["error"]}
case "update":
result = await AccessLevelHandler.edit(levelData, userId)
if "error" not in result:
return {"status": "ok"}
else:
return {"status": "error", "message": result["error"]}
case "delete":
result = await AccessLevelHandler.delete(levelData["id"], userId)
if "error" not in result:
return {"status": "ok"}
else:
return {"status": "error", "message": result["error"]}
case _:
logger.error(f"Неверное действие: {action}")
return {"status": "ok"}
@router.get("/login", name="Authentication", summary="Авторизация пользователя")