51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
from uuid import UUID
|
|
|
|
from fastapi import APIRouter, Depends, Query
|
|
|
|
from common.models.gmodel import PageParams, UserInfo
|
|
from router.v1.validator.dependencies import IsValidAccessToken, RemoveNoneResponse
|
|
from services.card_service import CardService
|
|
from .protocol import (
|
|
Req_CreateCard,
|
|
Req_UpdateCard,
|
|
Res_Card,
|
|
Res_CardList,
|
|
Res_DeleteCard,
|
|
)
|
|
|
|
router = APIRouter(prefix="/v1/card", tags=["Card"], responses={404: {"description": "Not found"}})
|
|
|
|
|
|
@router.get(path="/list", response_model=Res_CardList, summary="협상카드 목록")
|
|
async def list_cards(
|
|
service: CardService = Depends(),
|
|
user_info: UserInfo = Depends(IsValidAccessToken),
|
|
search: str | None = Query(None, description="카드명/카드번호/스크립트 검색"),
|
|
pg: PageParams = Depends(),
|
|
):
|
|
return RemoveNoneResponse(await service.list_cards(user_info.user_id, search, pg))
|
|
|
|
|
|
@router.post(path="/create", response_model=Res_Card, summary="협상카드 등록")
|
|
async def create_card(req: Req_CreateCard, service: CardService = Depends(), user_info: UserInfo = Depends(IsValidAccessToken)):
|
|
return RemoveNoneResponse(
|
|
await service.create_card(user_info.user_id, req.model_dump(exclude_unset=True))
|
|
)
|
|
|
|
|
|
@router.get(path="/{card_id}", response_model=Res_Card, summary="협상카드 조회")
|
|
async def get_card(card_id: UUID, service: CardService = Depends(), user_info: UserInfo = Depends(IsValidAccessToken)):
|
|
return RemoveNoneResponse(await service.get_card(user_info.user_id, str(card_id)))
|
|
|
|
|
|
@router.patch(path="/update/{card_id}", response_model=Res_Card, summary="협상카드 수정")
|
|
async def update_card(
|
|
card_id: UUID, req: Req_UpdateCard, service: CardService = Depends(), user_info: UserInfo = Depends(IsValidAccessToken)
|
|
):
|
|
return RemoveNoneResponse(await service.update_card(user_info.user_id, str(card_id), req.model_dump(exclude_unset=True)))
|
|
|
|
|
|
@router.delete(path="/delete/{card_id}", response_model=Res_DeleteCard, summary="협상카드 삭제")
|
|
async def delete_card(card_id: UUID, service: CardService = Depends(), user_info: UserInfo = Depends(IsValidAccessToken)):
|
|
return RemoveNoneResponse(await service.delete_card(user_info.user_id, str(card_id)))
|