/** * @return \EmailMessageActivity */ protected function createSpamEmailMessageActivity() { $emailMessageActivity = new EmailMessageActivity(); $emailMessageActivity->type = EmailMessageActivity::TYPE_SPAM; $emailMessageActivity->quantity = 10; $emailMessageActivity->save(); return $emailMessageActivity; }
public static function createNewActivity($type, $modelId, $personId, $url = null, $sourceIP = null) { $relatedModel = CampaignItem::getById(intval($modelId)); if (!$relatedModel) { throw new NotFoundException(); } $relationName = 'campaignItem'; return parent::createNewChildActivity($type, $personId, $url, $relationName, $relatedModel, $sourceIP); }
/** * @param CampaignItem $campaignItem * @return string */ public static function resolveDrillDownMetricsSummaryContent(CampaignItem $campaignItem) { $isQueued = $campaignItem->isQueued(); $isSkipped = $campaignItem->isSkipped(); if ($isQueued) { $content = static::getQueuedContentForDrillDown($campaignItem); } elseif ($isSkipped) { $content = static::getSkippedContentForDrillDown($campaignItem); } elseif ($campaignItem->hasFailedToSend()) { $content = static::getSendFailedContentForDrillDown($campaignItem); } elseif ($campaignItem->isSent()) { $content = static::getSentContentForDrillDown($campaignItem->emailMessage); $emailMessageActivityId = EmailMessageActivity::getIdByCampaignOrAutoresponderItem($campaignItem); $tableRows = null; if ($campaignItem->hasAtLeastOneOpenActivity()) { $tableRows .= static::getOpenedContentForDrillDown($campaignItem); } if ($campaignItem->hasAtLeastOneClickActivity()) { $tableRows .= static::getClickedContentForDrillDown($campaignItem); } if ($campaignItem->hasAtLeastOneUnsubscribeActivity()) { $content .= static::getUnsubscribedContentForDrillDown(); } if ($campaignItem->hasAtLeastOneBounceActivity()) { if ($emailMessageActivityId != null) { $count = ExternalApiEmailMessageActivity::resolveAndGetByEmailMessageActivityId($emailMessageActivityId, 'sendgrid', true); if ($count > 0) { $tableRows .= static::getBouncedContentForDrillDown($campaignItem); } } } if ($campaignItem->hasAtLeastOneEventActivity(CampaignItemActivity::TYPE_SPAM)) { if ($emailMessageActivityId != null) { $count = ExternalApiEmailMessageActivity::resolveAndGetByEmailMessageActivityId($emailMessageActivityId, 'sendgrid', true); if ($count > 0) { $tableRows .= static::getSpamContentForDrillDown($campaignItem); } } } $content .= static::getWrapperTable($tableRows); } else { $content = static::getAwaitingQueueingContentForDrillDown(); } return $content; }
/** * @param int $type * @return string */ public static function resolveAutoresponderTypeSubQuery($type) { assert('is_int($type)'); $quote = DatabaseCompatibilityUtil::getQuote(); $where = null; $selectDistinct = true; $autoresponderItemActivityTableName = AutoresponderItemActivity::getTableName('AutoresponderItemActivity'); $emailMessageActivityTableName = EmailMessageActivity::getTableName('EmailMessageActivity'); $selectQueryAdapter = new RedBeanModelSelectQueryAdapter($selectDistinct); $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('AutoresponderItemActivity'); $selectQueryAdapter->addClauseByQueryString("autoresponder_id"); $joinTablesAdapter->addFromTableAndGetAliasName($emailMessageActivityTableName, 'emailmessageactivity_id', $autoresponderItemActivityTableName); $where = "type = " . $type . " and {$quote}{$autoresponderItemActivityTableName}{$quote}" . ".autoresponderitem_id = autoresponderitem.id"; $sql = SQLQueryUtil::makeQuery($autoresponderItemActivityTableName, $selectQueryAdapter, $joinTablesAdapter, null, null, $where); return $sql; }
protected static function getIndexesDefinition() { $relatedModelClassName = static::getRelatedModelClassName(); $relatedColumnName = $relatedModelClassName::getTableName() . '_id'; // can't use self:: here as getTableName() uses get_called_class $baseColumnName = EmailMessageActivity::getTableName() . '_id'; return array($baseColumnName . '_' . $relatedColumnName => array('members' => array($baseColumnName, $relatedColumnName), 'unique' => true), $baseColumnName => array('members' => array($baseColumnName), 'unique' => false), $relatedColumnName => array('members' => array($relatedColumnName), 'unique' => false)); }
public static function getDefaultMetadata() { $metadata = parent::getDefaultMetadata(); $metadata[__CLASS__] = array('relations' => array(static::getRelationName() => array(static::HAS_ONE, static::getRelatedModelClassName())), 'indexes' => static::getIndexesDefinition()); return $metadata; }
/** * @depends testCreateAndGetEmailMessageActivityById */ public function testEmailMessageActivityStringValue() { $emailMessageActivities = EmailMessageActivity::getAll(); $this->assertCount(1, $emailMessageActivities); $types = EmailMessageActivity::getTypesArray(); $type = $types[$emailMessageActivities[0]->type]; $expectedStringValue = $emailMessageActivities[0]->latestDateTime . ': ' . strval($emailMessageActivities[0]->person) . '/' . $type; $this->assertEquals($expectedStringValue, strval($emailMessageActivities[0])); }
/** * @depends testCreateAndGetEmailMessageActivityById */ public function testDeleteEmailMessageActivity() { $emailMessageActivities = EmailMessageActivity::getAll(); $this->assertCount(3, $emailMessageActivities); $this->assertEquals(1, EmailMessageUrl::getCount()); $emailMessageActivities[0]->delete(); $emailMessageActivities = EmailMessageActivity::getAll(); $this->assertEquals(2, count($emailMessageActivities)); $this->assertEquals(1, EmailMessageUrl::getCount()); $emailMessageActivities[0]->delete(); $emailMessageActivities = EmailMessageActivity::getAll(); $this->assertEquals(1, count($emailMessageActivities)); $this->assertEquals(1, EmailMessageUrl::getCount()); $emailMessageActivities[0]->delete(); $emailMessageActivities = EmailMessageActivity::getAll(); $this->assertEquals(0, count($emailMessageActivities)); $this->assertEquals(0, EmailMessageUrl::getCount()); }