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 CampaignStripoClientV2 from email_campaigns.campaigns.models import EmailCampaign from email_campaigns.emails.handlers import SendTestEmailHandler from email_campaigns.emails.services import EmailSendService from email_campaigns.emails.validators import EmailValidator @singleton class SendTestCampaignEmailHandler(SendTestEmailHandler[EmailCampaign]): permission = Permission("email_campaign", "view") def __init__( self, auth_service: AuthService, email_send_service: EmailSendService, email_validator: EmailValidator, email_repository: Repository[EmailCampaign], stripo_client: StripoClient, stripo_v2_client: CampaignStripoClientV2, 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, )