Spaces:
No application file
No application file
File size: 1,627 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<?php
namespace MauticPlugin\MauticCrmBundle\Integration\Salesforce\CampaignMember;
use MauticPlugin\MauticCrmBundle\Integration\Salesforce\Object\Contact;
use MauticPlugin\MauticCrmBundle\Integration\Salesforce\Object\Lead;
class Organizer
{
private array $leads = [];
private array $contacts = [];
public function __construct(
private array $records
) {
$this->organize();
}
/**
* @return array
*/
public function getLeads()
{
return $this->leads;
}
public function getLeadIds(): array
{
return array_keys($this->leads);
}
/**
* @return array
*/
public function getContacts()
{
return $this->contacts;
}
public function getContactIds(): array
{
return array_keys($this->contacts);
}
private function organize(): void
{
foreach ($this->records as $campaignMember) {
$object = !empty($campaignMember['LeadId']) ? 'Lead' : 'Contact';
$objectId = !empty($campaignMember['LeadId']) ? $campaignMember['LeadId'] : $campaignMember['ContactId'];
$isDeleted = ($campaignMember['IsDeleted']) ? true : false;
switch ($object) {
case Lead::OBJECT:
$this->leads[$objectId] = new Lead($objectId, $campaignMember['CampaignId'], $isDeleted);
break;
case Contact::OBJECT:
$this->contacts[$objectId] = new Contact($objectId, $campaignMember['CampaignId'], $isDeleted);
break;
}
}
}
}
|