from typing import Annotated from anydi import Inject from fansifter_common.api.schemas import response_errors from fastapi import APIRouter, Query from preference_center.double_opt_in.exceptions import ( DoubleOptInTokenCheckError, DoubleOptInTokenExpiredError, ) from preference_center.double_opt_in.handlers import ( DoubleOptInConfirmHandler, DoubleOptInConfirmRequest, ) router = APIRouter() @router.post( "/double-opt-in/confirm", tags=["double-opt-in"], responses=response_errors( DoubleOptInTokenCheckError, DoubleOptInTokenExpiredError, ), ) def double_opt_in_confirm( token: Annotated[str, Query()], handler: Annotated[DoubleOptInConfirmHandler, Inject()], ) -> None: return handler.handle( DoubleOptInConfirmRequest( token=token, ) )