lavkach3

Форк
0
58 строк · 1.9 Кб
1
import typing
2
import uuid
3

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

7
from app.inventory.order.schemas.move_schemas import (
8
    MoveScheme,
9
    MoveCreateScheme,
10
    MoveUpdateScheme,
11
    MoveListSchema,
12
    MoveFilter, MoveConfirmScheme, GetMovesByBarcode,
13
)
14
from app.inventory.order.services.move_service import MoveService
15

16
move_router = APIRouter(
17

18
)
19

20

21
@move_router.get("", response_model=MoveListSchema)
22
async def move_list(
23
        model_filter: MoveFilter = FilterDepends(MoveFilter),
24
        size: int = Query(ge=1, le=100, default=20),
25
        service: MoveService = 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
@move_router.post("", response_model=MoveScheme)
33
async def move_create(schema: MoveCreateScheme, service: MoveService = Depends()):
34
    return await service.create(obj=schema)
35

36

37
@move_router.get("/{move_id}", response_model=MoveScheme)
38
async def move_get(move_id: uuid.UUID, service: MoveService = Depends()) -> typing.Union[None, MoveScheme]:
39
    return await service.get(id=move_id)
40

41

42
@move_router.put("/{move_id}", response_model=MoveScheme)
43
async def move_update(move_id: uuid.UUID, schema: MoveUpdateScheme, service: MoveService = Depends()):
44
    return await service.update(id=move_id, obj=schema)
45

46

47
@move_router.delete("/{move_id}")
48
async def move_delete(move_id: uuid.UUID, service: MoveService = Depends()):
49
    await service.delete(id=move_id)
50

51

52
@move_router.post("/confirm")
53
async def action_move_confirm(schema: MoveConfirmScheme, service: MoveService = Depends()):
54
    return await service.confirm(moves=schema.ids)
55

56
@move_router.post("/get_moves_by_barcode", response_model=list[MoveScheme])
57
async def get_moves_by_barcode(schema: GetMovesByBarcode, service: MoveService = Depends()):
58
    return await service.get_moves_by_barcode(barcode=schema.barcode, order_id=schema.order_id)
59

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

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

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

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