Ejemplo n.º 1
0
 /**
  * @param MessageEntity $entity
  *
  * @return bool
  */
 public function handlePost(MessageEntity $entity)
 {
     $form = $this->getForm();
     if ($this->request->isPost()) {
         $form->setData($this->request->getPost());
         if ($form->isValid()) {
             $entity->populate($this->getPopulateData());
             return $this->saveEntity($entity);
         }
     }
     $form->bind($entity);
     return false;
 }
Ejemplo n.º 2
0
 /**
  * @return Entity\Message
  */
 protected function getOldMessage()
 {
     $message = new Entity\Message();
     $message->setSystemMessage(false);
     $message->setSubject('Suspicious Message');
     $message->setBody('Nope');
     $message->setOnHalt(false);
     $message->setSendAt(new \DateTime('-70 minutes'));
     $message->setQueuedAt(new \DateTime('-65 minutes'));
     $message->setCampaign($this->getReference('winter2013-campaign'));
     return $message;
 }
Ejemplo n.º 3
0
 /**
  * @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;
 }
Ejemplo n.º 4
0
 /**
  * @TODO: Move to event
  *
  * @param CampaignEntity $entity
  * @param MessageEntity  $message
  *
  * @return bool
  */
 private function handleSystemMessage(CampaignEntity $entity, MessageEntity $message)
 {
     if ($message->getBody() && $message->getSubject()) {
         if (!$message->getId()) {
             $message->setCampaign($entity);
             $message->setQueuedAt(new \DateTime('now'));
             $message->setSendAt(new \DateTime('now'));
             $message->setOnHalt(false);
             $message->setSystemMessage(true);
             $this->systemMessageOp = static::SYSTEM_MESSAGE_CREATED;
         } else {
             $this->systemMessageOp = static::SYSTEM_MESSAGE_UPDATED;
         }
         $this->entityManager->persist($message);
     } elseif ($message->getId()) {
         $this->systemMessageOp = static::SYSTEM_MESSAGE_DELETED;
         $this->entityManager->remove($message);
     } else {
         $this->systemMessageOp = static::SYSTEM_MESSAGE_SKIPPED;
     }
     return true;
 }
Ejemplo n.º 5
0
 /**
  * @param int           $added
  * @param EntityMessage $message
  */
 private function sendTestMails($added, EntityMessage $message)
 {
     $feedback = $this->userText->getMessage(EntityName::MESSAGE, DmMailerAdminMessage::APPROVE_SUCCESS);
     $this->flashMessenger()->addSuccessMessage($feedback);
     if ($added && $this->queueService) {
         $added = $this->queueService->process($message->getQueue()->toArray(), true);
         for ($i = 0; $i < $added; $i++) {
             $feedback = $this->userText->getMessage(EntityName::EMAIL, DmMailerAdminMessage::SEND_SUCCESS);
             $this->flashMessenger()->addSuccessMessage($feedback);
         }
     } else {
         for ($i = 0; $i < $added; $i++) {
             $feedback = $this->userText->getMessage(EntityName::EMAIL, DmMailerAdminMessage::QUEUE_SUCCESS);
             $this->flashMessenger()->addSuccessMessage($feedback);
         }
     }
 }
Ejemplo n.º 6
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);
 }
Ejemplo n.º 7
0
 /**
  * @param Entity $message
  */
 public function closeMessage(Entity $message)
 {
     $message->setClosedAt(new \DateTime('now'));
     $this->_em->persist($message);
     $this->_em->flush();
 }
Ejemplo n.º 8
0
 /**
  * @param Message $message
  *
  * @return bool
  */
 private function closeSentMessage(Message $message)
 {
     $queue = $message->getQueue();
     if (empty($queue)) {
         return false;
     }
     $allSent = true;
     foreach ($queue as $queueItem) {
         if (null === $queueItem->getSentAt()) {
             $allSent = false;
             break;
         }
     }
     if ($this->isVerbose()) {
         $messageAsString = $this->messageToString($message, count($queue));
         if ($allSent) {
             $this->logger->info('Message to be closed: ' . $messageAsString);
         } else {
             $this->logger->info('Message is still being sent: ' . $messageAsString);
         }
     }
     if ($allSent) {
         $this->messageRepository->closeMessage($message);
         return true;
     }
     return false;
 }
Ejemplo n.º 9
0
    /**
     * @return Entity\Message
     */
    protected function getNye2014()
    {
        $message = new Entity\Message();
        $body = <<<EOF
<p>Vestibulum tincidunt malesuada tellus. Ut ultrices ultrices enim. <b>Suspendisse in justo eu magna luctus
suscipit <b>nulla facilisi</b>. Vestibulum nisi lectus, commodo ac, facilisis ac, ultricies eu, pede. Ut orci risus,
accumsan porttitor, cursus quis, aliquet eget, justo. Sed pretium blandit orci. Ut eu diam at pede suscipit sodales.</p>
EOF;
        $message->setSubject('HNYE Berlin!');
        $message->setBody($body);
        $message->setCampaign($this->getReference('winter2014-campaign'));
        $message->setSendAt(new \DateTime("+20 minutes"));
        $message->setOnHalt(false);
        return $message;
    }