Files
Fulfillment-Backend/routers/card_tag.py

64 lines
1.5 KiB
Python

from typing import Annotated
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from backend.session import get_session
from schemas.card_tag import *
from services.auth import authorized_user
from services.card_tag import CardTagService
card_tag_router = APIRouter(
prefix='/card-tag',
tags=['card-tag'],
dependencies=[Depends(authorized_user)]
)
@card_tag_router.post(
'/',
operation_id='create_tag',
response_model=CreateTagResponse
)
async def create_tag(
request: CreateTagRequest,
session: Annotated[AsyncSession, Depends(get_session)]
):
return await CardTagService(session).create(request)
@card_tag_router.patch(
'/',
operation_id='update_tag',
response_model=UpdateTagResponse
)
async def update_tag(
request: UpdateTagRequest,
session: Annotated[AsyncSession, Depends(get_session)]
):
return await CardTagService(session).update(request)
@card_tag_router.delete(
'/{card_tag_id}',
response_model=DeleteTagResponse,
operation_id="delete_tag",
)
async def delete_tag(
session: Annotated[AsyncSession, Depends(get_session)],
card_tag_id: int,
):
return await CardTagService(session).delete(card_tag_id)
@card_tag_router.post(
'/switch',
response_model=SwitchTagResponse,
operation_id='switch_tag',
)
async def switch_tag(
session: Annotated[AsyncSession, Depends(get_session)],
request: SwitchTagRequest,
):
return await CardTagService(session).switch_tag(request)