コード例 #1
0
ファイル: HookSubscriber.php プロジェクト: myawesome/mailer
 /**
  * @param HookEvent $hookEvent
  */
 public function onHookRequest(HookEvent $hookEvent)
 {
     $hook = $hookEvent->getHook();
     // update letter and snapshot
     $letter = $this->letterManager->updateByHook($hook);
     //update campaign
     if ($letter instanceof Letter) {
         $tag = $letter->getTags();
     }
     if (isset($tag)) {
         $campRepo = $this->em->getRepository("GroslabMailerBundle:Campaign");
         $camp = $campRepo->findOneBy(array('referer' => $tag));
     }
     if (isset($camp) && $camp instanceof Campaign) {
         if ($hook->getEvent() === HookEvents::DELIVERED) {
             $camp->addCountDelivered();
         }
         if ($hook->getEvent() === HookEvents::SPAMREPORT) {
             // todo:
         }
         if ($hook->getEvent() === HookEvents::OPEN) {
             $camp->addCountOpened();
         }
         if ($hook->getEvent() === HookEvents::CLICK) {
             $camp->addCountClicked();
         }
         if ($hook->getEvent() === HookEvents::BOUNCE) {
             //todo:
         }
         $this->em->persist($camp);
         $this->em->flush($camp);
     }
 }