from anydi import singleton from fansifter_common.auth.types import Permission from email_campaigns.campaigns.exceptions import EmailCampaignMustBeDraftError from email_campaigns.campaigns.models import EmailCampaign from email_campaigns.emails.handlers import UpdateEmailContentHandler @singleton class UpdateCampaignContentHandler(UpdateEmailContentHandler[EmailCampaign]): permission = Permission("email_campaign", "edit") def validate_email(self, email: EmailCampaign) -> None: if not email.is_draft: raise EmailCampaignMustBeDraftError