/
killogram
/
E-Analyzer
Обзор
Документация
Войти
/
killogram
/
E-Analyzer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
api/purchases.py
37 строк
2 KB
Korabliov Kirill
Refactor add purchase feachure
01 июн 2025, 23:54
01 июн 2025, 23:54
9d93c35
Код
Авторство
О чём код?
# Обновленный purchases.py from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from typing import List from api.crud import search_purchases, get_purchase_by_number, get_purchase_by_id, create_purchase_with_customer from api.schemas import Purchase, AddPurchaseForm from api.database import get_db router = APIRouter() @router.get("/search/", response_model=List[Purchase]) def get_purchases_by_search(query: str, db: Session = Depends(get_db)): purchases = search_purchases(db, query) if not purchases: raise HTTPException(status_code=404, detail="Закупки не найдены") return purchases @router.get("/{registry_number}", response_model=Purchase) def get_purchase(registry_number: str, db: Session = Depends(get_db)): purchase = get_purchase_by_number(db, registry_number) if not purchase: raise HTTPException(status_code=404, detail="Закупка не найдена") return purchase @router.get("/by_id/{purchase_id}", response_model=Purchase) def get_purchase_by_id_endpoint(purchase_id: int, db: Session = Depends(get_db)): purchase = get_purchase_by_id(db, purchase_id) if not purchase: raise HTTPException(status_code=404, detail="Закупка не найдена") return purchase @router.post("/add_purchase/", response_model=Purchase) def add_purchase(purchase_data: AddPurchaseForm, db: Session = Depends(get_db)): purchase = create_purchase_with_customer(db, purchase_data) if not purchase: raise HTTPException(status_code=400, detail="Не удалось добавить закупку") return purchase