![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/PluginBundle/Model/ |
<?php namespace Mautic\PluginBundle\Model; use Mautic\CoreBundle\Model\FormModel; use Mautic\PluginBundle\Entity\IntegrationEntity; use Mautic\PluginBundle\Integration\IntegrationObject; /** * @extends FormModel<IntegrationEntity> */ class IntegrationEntityModel extends FormModel { public function getIntegrationEntityRepository() { return $this->em->getRepository(IntegrationEntity::class); } public function logDataSync(IntegrationObject $integrationObject): void { } public function getSyncedRecords(IntegrationObject $integrationObject, $integrationName, $recordList, $internalEntityId = null) { if (!$formattedRecords = $this->formatListOfContacts($recordList)) { return []; } $integrationEntityRepo = $this->getIntegrationEntityRepository(); return $integrationEntityRepo->getIntegrationsEntityId( $integrationName, $integrationObject->getType(), $integrationObject->getInternalType(), $internalEntityId, null, null, false, 0, 0, $formattedRecords ); } /** * @return array<mixed, array<'id', mixed>> */ public function getRecordList($integrationObject): array { $recordList = []; foreach ($integrationObject->getRecords() as $record) { $recordList[$record['Id']] = [ 'id' => $record['Id'], ]; } return $recordList; } public function formatListOfContacts($recordList): ?string { if (empty($recordList)) { return null; } $csList = is_array($recordList) ? implode('", "', array_keys($recordList)) : $recordList; return '"'.$csList.'"'; } public function getMauticContactsById($mauticContactIds, $integrationName, $internalObject) { if (!$formattedRecords = $this->formatListOfContacts($mauticContactIds)) { return []; } $integrationEntityRepo = $this->getIntegrationEntityRepository(); return $integrationEntityRepo->getIntegrationsEntityId( $integrationName, null, $internalObject, null, null, null, false, 0, 0, $formattedRecords ); } /** * @param int $id * * @return IntegrationEntity|null */ public function getEntityByIdAndSetSyncDate($id, \DateTime $dateTime) { $entity = $this->getIntegrationEntityRepository()->find($id); if ($entity) { $entity->setLastSyncDate($dateTime); } return $entity; } }