first commit
This commit is contained in:
143
app/api/v1/client.py
Normal file
143
app/api/v1/client.py
Normal file
@ -0,0 +1,143 @@
|
||||
from time import time
|
||||
|
||||
from fastapi import APIRouter
|
||||
|
||||
from app import mongo
|
||||
from app.utils.logger_util import logger
|
||||
from app.utils.response_util import response
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/get-all", tags=[""])
|
||||
async def get_all():
|
||||
start_time = time()
|
||||
|
||||
clients = await mongo.clients_collection.find({}, {
|
||||
"_id": False
|
||||
}).sort("id", mongo.desc).to_list()
|
||||
|
||||
return response({
|
||||
"clients": clients
|
||||
}, start_time=start_time)
|
||||
|
||||
|
||||
@router.get("/search", tags=[""])
|
||||
async def search(name: str):
|
||||
start_time = time()
|
||||
|
||||
clients = await mongo.clients_collection.find({
|
||||
"name": {
|
||||
"$regex": name
|
||||
}
|
||||
}, {
|
||||
"_id": False
|
||||
}).sort("id", mongo.asc).to_list()
|
||||
|
||||
return response({
|
||||
"clients": clients
|
||||
}, start_time=start_time)
|
||||
|
||||
|
||||
@router.get("/get/{client_id}", tags=[""])
|
||||
async def get(client_id: int):
|
||||
start_time = time()
|
||||
|
||||
client = await mongo.clients_collection.find_one({
|
||||
"id": client_id
|
||||
}, {
|
||||
"_id": False
|
||||
})
|
||||
|
||||
boxes = await mongo.client_boxes_collection.find({
|
||||
"clientId": client_id
|
||||
}, {
|
||||
"_id": False
|
||||
}).to_list()
|
||||
client["boxes"] = boxes
|
||||
|
||||
pallets = await mongo.client_pallets_collection.find({
|
||||
"clientId": client_id
|
||||
}, {
|
||||
"_id": False
|
||||
}).to_list()
|
||||
|
||||
for pallet in pallets:
|
||||
pallet["boxes"] = await mongo.client_boxes_collection.find({
|
||||
"palletId": pallet["id"]
|
||||
}, {
|
||||
"_id": False
|
||||
}).to_list()
|
||||
|
||||
client["pallets"] = pallets
|
||||
|
||||
return response({
|
||||
"client": client
|
||||
}, start_time=start_time)
|
||||
|
||||
|
||||
@router.post("/create", tags=[""])
|
||||
async def create(params: dict):
|
||||
start_time = time()
|
||||
data = params["data"]
|
||||
|
||||
existing_client = await mongo.clients_collection.find_one({"name": data["name"]})
|
||||
if existing_client:
|
||||
return response({
|
||||
"message": f"Клиент с именем '{data['name']}' уже существует",
|
||||
"ok": False
|
||||
}, start_time=start_time)
|
||||
|
||||
data["id"] = await mongo.get_next_id(mongo.clients_collection)
|
||||
await mongo.clients_collection.insert_one(data)
|
||||
|
||||
return response({
|
||||
"message": "Клиент создан",
|
||||
"ok": True
|
||||
}, start_time=start_time)
|
||||
|
||||
|
||||
@router.post("/update", tags=[""])
|
||||
async def update(params: dict):
|
||||
start_time = time()
|
||||
data = params["data"]
|
||||
|
||||
logger.json(data)
|
||||
|
||||
try:
|
||||
await mongo.clients_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()
|
||||
client_id = params["clientId"]
|
||||
|
||||
try:
|
||||
await mongo.clients_collection.delete_one({
|
||||
"id": client_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)
|
||||
Reference in New Issue
Block a user