| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- declare(strict_types=1);
- namespace App\Service\Mailer\Builder;
- use App\Entity\Access\Access;
- use App\Entity\Organization\Organization;
- use App\Enum\Core\ContactPointTypeEnum;
- use App\Enum\Core\EmailSendingTypeEnum;
- use App\Service\Mailer\Email;
- use App\Service\Mailer\Model\MailerModelInterface;
- use App\Service\Mailer\Model\TestModel;
- use Doctrine\Common\Collections\ArrayCollection;
- use Doctrine\ORM\EntityManagerInterface;
- use function Symfony\Component\DependencyInjection\Loader\Configurator\param;
- /**
- * Classe ... qui ...
- */
- class TestBuilder extends AbstractBuilder implements BuilderInterface
- {
- public function __construct(
- private EntityManagerInterface $entityManager
- )
- {
- }
- public function support(MailerModelInterface $mailerModel): bool
- {
- return $mailerModel instanceof TestModel;
- }
- /**
- * @param TestModel $mailerModel
- * @return ArrayCollection
- */
- public function build(MailerModelInterface $mailerModel): ArrayCollection
- {
- $organization = $this->entityManager->getRepository(Organization::class)->find($mailerModel->getOrganizationId());
- $access = $this->entityManager->getRepository(Access::class)->find($mailerModel->getAccessId());
- $emails = new ArrayCollection();
- $context = ['organization' => $organization];
- $content = $this->render('test', $context);
- $email= (new Email())
- ->setEmailEntity($this->buildEmailEntity('Mon sujet', $access, $content))
- ->setContent($content)
- ->setFrom('vincent.guffon@2iopenservice.fr')
- ;
- $this->addRecipient($email, $access, EmailSendingTypeEnum::TO()->getValue(), ContactPointTypeEnum::PRINCIPAL()->getValue());
- $this->addRecipient($email, $organization, EmailSendingTypeEnum::TO()->getValue(), ContactPointTypeEnum::PRINCIPAL()->getValue());
- $this->addRecipient($email, "vincent.guffon@gmail.com", EmailSendingTypeEnum::TO()->getValue());
- $emails->add($email);
- return $emails;
- }
- }
|