from typing import Annotated, Any from anydi import Provide from fastapi import APIRouter, Depends, Query from email_campaigns.api import auth, schemas from email_campaigns.emails.handlers import ( GetEmailDomainsHandler, GetEmailDomainsRequest, ) router = APIRouter(tags=["Domains"]) @router.get( "/domains", operation_id="getEmailDomains", response_model=list[schemas.EmailDomain], response_model_by_alias=True, ) def get_email_domains( identity_id: Annotated[str, Depends(auth.get_identity_id)], params: Annotated[schemas.GetEmailDomainsInput, Query()], handler: Provide[GetEmailDomainsHandler], ) -> Any: return handler.handle( GetEmailDomainsRequest( identity_id=identity_id, vendor_id=params.vendor_id, subaccount_id=params.subaccount_id, ) )