/** * @param MessageEntity $message * * @return int */ public function queueMessage(MessageEntity $message) { $queueCount = 0; foreach ($message->getCampaign()->getSubscribers() as $subscriber) { /** @var Entity $queueItem */ $queueItem = $this->getNewEntity(); $queueItem->setSubscriber($subscriber); $queueItem->setMessage($message); $queueItem->setSecurityKey(); $this->_em->persist($queueItem); $queueCount++; } $message->setQueuedAt(new \DateTime('now')); $this->_em->persist($message); $this->_em->flush(); return $queueCount; }
/** * @param EntityMessage $message * * @return string */ private function getPreviewData(EntityMessage $message) { $campaign = $message->getCampaign(); $template = $campaign->getTemplate(); $this->messageBuilder->setEntityVars($message, $campaign, $template); return $this->messageBuilder->getBody($message->getBody(), $template->getBody()); }
/** * @param Entity\Message $message * @param Entity\Subscriber $subscriber * * @return array Entity\Queue[] */ private function isSubscriberSubscribedToCampaign($message, $subscriber) { $campaignId = $message->getCampaign()->getId(); $subscribedCampaignIds = []; /** @var $campaign Entity\Campaign */ foreach ($subscriber->getCampaigns() as $campaign) { $subscribedCampaignIds[] = $campaign->getId(); } return in_array($campaignId, $subscribedCampaignIds); }