first commit

This commit is contained in:
2025-07-24 20:13:47 +03:00
commit 94b7585f8b
175 changed files with 85264 additions and 0 deletions

View File

@ -0,0 +1,129 @@
from time import time
from fastapi import APIRouter
from app import mongo
from app.utils.response_util import response
router = APIRouter()
@router.get("/get-by-id", tags=[""])
async def get_by_id(product_id: int = None):
start_time = time()
product = await mongo.products_collection.find_one({
"id": product_id
}, {
"_id": False
})
return response(product, start_time=start_time)
@router.get("/get", tags=[""])
async def get(client_id: int = None, search_input: str = None, page: int = 0, items_per_page: int = 10):
start_time = time()
filter = dict()
if client_id:
filter["clientId"] = client_id
if search_input:
filter["$or"] = [
{
"name": {
"$regex": search_input
}
},
{
"article": {
"$regex": search_input
}
},
{
"factoryArticle": {
"$regex": search_input
}
},
{
"barcodes": {
"$regex": search_input
}
}
]
products = await mongo.products_collection.find(filter, {
"_id": False
}).limit(items_per_page).skip(items_per_page * page).to_list()
products_count = await mongo.products_collection.count_documents(filter)
return response({
"paginationInfo": {
"totalItems": products_count,
"totalPages": round(products_count / items_per_page)
},
"products": products
}, start_time=start_time)
@router.post("/create", tags=[""])
async def create(data: dict):
start_time = time()
data["id"] = await mongo.get_next_id(mongo.products_collection)
try:
await mongo.products_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["product"]
try:
await mongo.products_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()
product_id = params["productId"]
try:
await mongo.products_collection.delete_one({
"id": product_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)