lavkach3

Форк
0
51 строка · 1.6 Кб
1
import typing
2
import uuid
3

4
from fastapi import APIRouter, Query, Request
5
from fastapi_filter import FilterDepends
6

7
from app.inventory.order.schemas import (
8
    OrderScheme,
9
    OrderCreateScheme,
10
    OrderUpdateScheme,
11
    ExceptionResponseSchema,
12
    OrderListSchema,
13
    OrderFilter,
14
)
15
from app.inventory.order.services import OrderService
16

17
order_router = APIRouter(
18
    # dependencies=[Depends(PermissionDependency([IsAuthenticated]))],
19
    responses={"400": {"model": ExceptionResponseSchema}},
20
)
21

22

23
@order_router.get("", response_model=OrderListSchema)
24
async def order_list(
25
        request: Request,
26
        model_filter: OrderFilter = FilterDepends(OrderFilter),
27
        size: int = Query(ge=1, le=100, default=20),
28
):
29
    data = await OrderService(request).list(model_filter, size)
30
    cursor = model_filter.lsn__gt
31
    return {'size': len(data), 'cursor': cursor, 'data': data}
32

33

34
@order_router.post("", response_model=OrderScheme)
35
async def order_create(request: Request, schema: OrderCreateScheme):
36
    return await OrderService(request).create(obj=schema)
37

38

39
@order_router.get("/{order_id}")
40
async def order_get(request: Request, order_id: uuid.UUID) -> typing.Union[None, OrderScheme]:
41
    return await OrderService(request).get(id=order_id)
42

43

44
@order_router.put("/{order_id}", response_model=OrderScheme)
45
async def order_update(request: Request, order_id: uuid.UUID, schema: OrderUpdateScheme):
46
    return await OrderService(request).update(id=order_id, obj=schema)
47

48

49
@order_router.delete("/{order_id}")
50
async def order_delete(request: Request, order_id: uuid.UUID):
51
    await OrderService(request).delete(id=order_id)
52

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

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

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

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