protected function createActivityIfRequired($createNewActivity, $newUnsubcribedValue, $modelId, $modelType, $personId)
 {
     if (!$createNewActivity || $newUnsubcribedValue != 1) {
         return;
     }
     $activityClassName = EmailMessageActivityUtil::resolveModelClassNameByModelType($modelType);
     $activityUtilClassName = $activityClassName . 'Util';
     $type = $activityClassName::TYPE_UNSUBSCRIBE;
     $url = null;
     $sourceIP = Yii::app()->request->userHostAddress;
     $activityData = array('modelId' => $modelId, 'modelType' => $modelType, 'personId' => $personId, 'url' => null, 'type' => $type);
     return $activityUtilClassName::createOrUpdateActivity($activityData);
 }
Exemple #2
0
 protected function createBounceActivity(ImapMessage $message)
 {
     $zurmoItemClass = null;
     $zurmoItemId = null;
     $zurmoPersonId = null;
     $headerTags = array('zurmoItemId', 'zurmoItemClass', 'zurmoPersonId');
     $headers = EmailBounceUtil::resolveCustomHeadersFromTextBody($headerTags, $message->textBody);
     $this->deleteMessage($message);
     if ($headers === false) {
         return false;
     }
     extract($headers);
     assert('$zurmoItemClass === "AutoresponderItem" || $zurmoItemClass === "CampaignItem"');
     assert('$zurmoItemId > 0');
     assert('$zurmoPersonId > 0');
     $activityClassName = EmailMessageActivityUtil::resolveModelClassNameByModelType($zurmoItemClass);
     $activityUtilClassName = $activityClassName . 'Util';
     $type = $activityClassName::TYPE_BOUNCE;
     $activityData = array('modelId' => $zurmoItemId, 'modelType' => $zurmoItemClass, 'personId' => $zurmoPersonId, 'url' => null, 'type' => $type);
     $activityCreatedOrUpdated = $activityUtilClassName::createOrUpdateActivity($activityData);
     try {
         if (!$activityCreatedOrUpdated) {
             throw new NotSupportedException();
         }
     } catch (NotSupportedException $e) {
         return false;
     }
     return true;
 }
 /**
  * Process actiity information.
  * @param array $value
  */
 protected function processActivityInformation($value)
 {
     $type = $this->getActivityTypeByEvent($value);
     $activityClassName = EmailMessageActivityUtil::resolveModelClassNameByModelType($value['itemClass']);
     $activityUtilClassName = $activityClassName . 'Util';
     $activityData = array('modelId' => $value['itemId'], 'modelType' => $value['itemClass'], 'personId' => $value['personId'], 'url' => null, 'type' => $type);
     if ($activityUtilClassName::createOrUpdateActivity($activityData)) {
         //$activityClassName = CampaignItemActivity
         $emailMessageActivities = $activityClassName::getByTypeAndModelIdAndPersonIdAndUrl($type, $value['itemId'], $value['personId'], null);
         self::resolveAndUpdateEventInformationByStatus($value);
         $externalMessageActivityCount = ExternalApiEmailMessageActivity::getByTypeAndEmailMessageActivity($value['type'], $emailMessageActivities[0], "sendgrid");
         if ($externalMessageActivityCount == 0) {
             $this->saveExternalApiEmailMessageActivity($emailMessageActivities[0], $value);
         }
     }
 }