from anydi import singleton from fansifter_common.adapters.stripo import StripoClient from fansifter_common.auth.services import AuthService from fansifter_common.auth.types import Permission from email_campaigns.adapters.db import Repository from email_campaigns.adapters.features import Features from email_campaigns.adapters.stripo import AutomatedStripoClientV2 from email_campaigns.automated.models import AutomatedEmail from email_campaigns.emails.handlers import SendTestEmailHandler from email_campaigns.emails.services import EmailSendService from email_campaigns.emails.validators import EmailValidator @singleton class SendAutomatedTestEmailHandler(SendTestEmailHandler[AutomatedEmail]): # TODO: ---> Permission("automated_email", "view") permission = Permission("email_campaign", "view") def __init__( self, auth_service: AuthService, email_send_service: EmailSendService, email_validator: EmailValidator, email_repository: Repository[AutomatedEmail], stripo_client: StripoClient, stripo_v2_client: AutomatedStripoClientV2, features: Features, ) -> None: super().__init__( auth_service=auth_service, email_send_service=email_send_service, email_validator=email_validator, email_repository=email_repository, stripo_client=stripo_client, stripo_v2_client=stripo_v2_client, features=features, )