watchListRepository->findOneBy(["token" => $message->watchListToken]); /** @var Domain $domain */ $domain = $this->domainRepository->findOneBy(["ldhName" => $message->ldhName]); $watchListTriggers = $watchList->getWatchListTriggers(); /** @var WatchListTrigger $watchListTrigger */ foreach ($watchListTriggers->getIterator() as $watchListTrigger) { if ($watchListTrigger->getAction() === TriggerAction::BuyDomain) { if ($watchListTrigger->getConnector() === null) throw new Exception('Connector is missing'); $connector = $watchListTrigger->getConnector(); if ($connector->getProvider() === ConnectorProvider::OVH) { $ovh = new OVHConnector($connector->getAuthData()); $isDebug = $this->kernel->isDebug(); $ovh->orderDomain( $domain, true, true, true, $isDebug ); } else throw new Exception("Unknown provider"); } /** @var DomainEvent $event */ foreach ($domain->getEvents()->filter(fn($event) => $message->updatedAt < $event->getDate()) as $event) { if ($watchListTrigger->getAction() == TriggerAction::SendEmail) { $this->sendEmailDomainUpdated($event, $watchList->getUser()); } } } } /** * @throws TransportExceptionInterface */ private function sendEmailDomainUpdated(DomainEvent $domainEvent, User $user): void { $email = (new TemplatedEmail()) ->from($this->mailerSenderEmail) ->to($user->getEmail()) ->priority(Email::PRIORITY_HIGHEST) ->subject('A domain name has been changed') ->htmlTemplate('emails/domain_updated.html.twig') ->locale('en') ->context([ "event" => $domainEvent ]); $this->mailer->send($email); } }