from collections.abc import Sequence from dataclasses import dataclass from anydi import singleton from fansifter_common.auth.requests import AuthAccountRequest from email_campaigns.emails.models import EmailDomain from email_campaigns.emails.services import EmailDomainService @dataclass(kw_only=True) class GetEmailDomainsRequest(AuthAccountRequest): pass @singleton class GetEmailDomainsHandler: def __init__(self, service: EmailDomainService) -> None: self.service = service def handle(self, request: GetEmailDomainsRequest) -> Sequence[EmailDomain]: return self.service.get_allowed_domains( identity_id=request.identity_id, account=request.account )