/** * @depends testCreateAndGetMarketingListMemberById */ public function testGetByMarketingListIdAndContactId() { $marketingList = MarketingListTestHelper::createMarketingListByName('test marketing List 07'); $this->assertNotNull($marketingList); $super = User::getByUsername('super'); $contact = ContactTestHelper::createContactByNameForOwner('contact 02', $super); $marketingListMember = MarketingListMember::getByMarketingListIdAndContactId($marketingList->id, $contact->id); $this->assertFalse($marketingListMember); MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList, $contact); $marketingListMember = MarketingListMember::getByMarketingListIdAndContactId($marketingList->id, $contact->id); $this->assertTrue($marketingListMember[0] instanceof MarketingListMember); }
public function skipMessage(Contact $contact, Item $itemOwnerModel) { // TODO: @Shoaibi: Critical0: We could use SQL for getByMarketingListIdContactIdandUnsubscribed to save further performance here. if ($contact->primaryEmail->optOut) { return true; } $marketingListMember = MarketingListMember::getByMarketingListIdAndContactId($itemOwnerModel->marketingList->id, $contact->id); if ($marketingListMember === false) { return true; } else { $marketingListMemberObject = $marketingListMember[0]; $itemOwnerModelClassName = get_class($itemOwnerModel); if ($itemOwnerModelClassName === "Campaign" && $marketingListMemberObject->unsubscribed == true) { return true; } elseif ($itemOwnerModelClassName === "Autoresponder") { if ($itemOwnerModel->operationType == Autoresponder::OPERATION_SUBSCRIBE && $marketingListMemberObject->unsubscribed == true) { return true; } elseif ($itemOwnerModel->operationType == Autoresponder::OPERATION_UNSUBSCRIBE && $marketingListMemberObject->unsubscribed == false) { return true; } } } return false; }