import json from time import time from fastapi import APIRouter from app.config import config from app.utils.logger_util import logger from app.utils.response_util import response from app import mongo router = APIRouter() @router.get("/get-all", tags=[""]) async def template_get_all(): start_time = time() attributes = await mongo.template_attributes_collection.find({}, { "_id": False }).sort("id", mongo.asc).to_list() return response({ "attributes": attributes }, start_time=start_time) @router.post("/create", tags=[""]) async def create(params: dict): start_time = time() data = params["attribute"] data["id"] = await mongo.get_next_id(mongo.template_attributes_collection) logger.json(data) try: await mongo.template_attributes_collection.insert_one(data) return response({ "message": "Атрибут создан", "ok": True }, start_time=start_time) except Exception as e: return response({ "message": str(e), "ok": False }, start_time=start_time, code=400) @router.post("/update", tags=[""]) async def update(params: dict): start_time = time() data = params["data"] logger.json(data) try: await mongo.template_attributes_collection.update_one({ "id": data["id"] }, { "$set": data }) return response({ "message": "Данные атрибута обновлены", "ok": True }, start_time=start_time) except Exception as e: return response({ "message": str(e), "ok": False }, start_time=start_time, code=400) @router.post("/delete", tags=[""]) async def delete(params: dict): start_time = time() attribute_id = params["attributeId"] logger.json(attribute_id) try: await mongo.template_attributes_collection.delete_one({ "id": attribute_id }) return response({ "message": "Атрибут удален", "ok": True }, start_time=start_time) except Exception as e: return response({ "message": str(e), "ok": False }, start_time=start_time, code=400)