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); }
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); } } }