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) @card_tag_router.get( '/colors', response_model=GetTagColorsResponse, operation_id='get_colors', ) async def get_colors( session: Annotated[AsyncSession, Depends(get_session)], ): return await CardTagService(session).get_tag_colors()