コード例 #1
0
ファイル: QueueItem.php プロジェクト: peteraba/dm-mailer
 /**
  * @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;
 }
コード例 #2
0
 /**
  * @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());
 }
コード例 #3
0
 /**
  * @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);
 }