lavkach3

Форк
0
49 строк · 1.5 Кб
1
import uuid
2

3
from fastapi import APIRouter, Query, Request, Depends
4
from fastapi_filter import FilterDepends
5

6
from app.inventory.quant.schemas import (
7
    QuantScheme,
8
    QuantCreateScheme,
9
    QuantUpdateScheme,
10
    ExceptionResponseSchema,
11
    QuantListSchema,
12
    QuantFilter
13
)
14
from app.inventory.quant.services import QuantService
15

16
quant_router = APIRouter(
17
    responses={"400": {"model": ExceptionResponseSchema}},
18
)
19

20

21
@quant_router.get("", response_model=QuantListSchema)
22
async def quant_list(
23
        model_filter: QuantFilter = FilterDepends(QuantFilter),
24
        size: int = Query(ge=1, le=100, default=100),
25
        service: QuantService = Depends()
26
):
27
    data = await service.list(model_filter, size)
28
    cursor = model_filter.lsn__gt
29
    return {'size': len(data), 'cursor': cursor, 'data': data}
30

31

32
@quant_router.post("", response_model=QuantScheme)
33
async def quant_create(schema: QuantCreateScheme, service: QuantService = Depends()):
34
    return await service.create(obj=schema)
35

36

37
@quant_router.get("/{quant_id}", response_model=QuantScheme)
38
async def quant_get(quant_id: uuid.UUID, service: QuantService = Depends()):
39
    return await service.get(id=quant_id)
40

41

42
@quant_router.put("/{quant_id}", response_model=QuantScheme)
43
async def quant_update(quant_id: uuid.UUID, schema: QuantUpdateScheme, service: QuantService = Depends()):
44
    return await service.update(id=quant_id, obj=schema)
45

46

47
@quant_router.delete("/{quant_id}")
48
async def quant_delete(quant_id: uuid.UUID, service: QuantService = Depends()):
49
    await service.delete(id=quant_id)
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.