Spaces:
No application file
No application file
namespace Mautic\CategoryBundle\Model; | |
use Mautic\LeadBundle\Model\LeadModel; | |
class ContactActionModel | |
{ | |
public function __construct( | |
private LeadModel $contactModel | |
) { | |
} | |
public function addContactsToCategories(array $contactIds, array $categoryIds): void | |
{ | |
$contacts = $this->contactModel->getLeadsByIds($contactIds); | |
foreach ($contacts as $contact) { | |
if (!$this->contactModel->canEditContact($contact)) { | |
continue; | |
} | |
$this->contactModel->addToCategory($contact, $categoryIds); | |
} | |
} | |
public function removeContactsFromCategories(array $contactIds, array $categoryIds): void | |
{ | |
$contacts = $this->contactModel->getLeadsByIds($contactIds); | |
foreach ($contacts as $contact) { | |
if (!$this->contactModel->canEditContact($contact)) { | |
continue; | |
} | |
$contactCategoryRelations = $this->contactModel->getLeadCategories($contact); | |
$relationsToDelete = array_intersect($contactCategoryRelations, $categoryIds); | |
$this->contactModel->removeFromCategories($relationsToDelete); | |
} | |
} | |
} | |