getRepository()->findOneBy(['email' => $email]); if (!is_null($emailDraft)) { throw new \Exception(sprintf('Draft already exists for email %d', $email->getId())); } $emailDraft = new EmailDraft($email, $html, $template, $publicPreview); $this->em->persist($emailDraft); $this->em->flush(); return $emailDraft; } public function deleteDraft(Email $email): void { if (is_null($emailDraft = $email->getDraft())) { throw new NotFoundHttpException(sprintf('Draft not found for email %d', $email->getId())); } $this->em->remove($emailDraft); $this->em->flush(); } public function getPermissionBase(): string { return 'email:emails'; } public function getRepository(): EmailDraftRepository { return $this->em->getRepository(EmailDraft::class); } }