51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from time import time
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from app import mongo
|
|
from app.utils.response_util import response
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/available/{user_id}", tags=[""])
|
|
async def get(user_id: int):
|
|
start_time = time()
|
|
|
|
employees = await mongo.users_collection.find({}, {
|
|
"_id": False
|
|
}).sort("id", mongo.asc).to_list()
|
|
|
|
return response({
|
|
"employees": employees
|
|
}, start_time=start_time)
|
|
|
|
|
|
@router.post("", tags=[""])
|
|
async def add(params: dict):
|
|
start_time = time()
|
|
params["createdAt"] = mongo.created_at()
|
|
|
|
deal = await mongo.deals_collection.find_one(
|
|
{"id": params["dealId"]},
|
|
{"_id": False}
|
|
)
|
|
|
|
employees = deal.get("employees", [])
|
|
user_entry = {"userId": params["userId"], "createdAt": params["createdAt"]}
|
|
|
|
if params["isAssign"]:
|
|
if user_entry not in employees:
|
|
employees.append(user_entry)
|
|
else:
|
|
employees = [employee for employee in employees if employee["userId"] != params["userId"]]
|
|
|
|
await mongo.deals_collection.update_one(
|
|
{"id": params["dealId"]},
|
|
{"$set": {"employees": employees}}
|
|
)
|
|
|
|
return response({
|
|
"message": "Данные обновлены",
|
|
"ok": True
|
|
}, start_time=start_time) |