Spaces:
No application file
No application file
File size: 1,677 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 |
<?php
namespace MauticPlugin\MauticCrmBundle\Controller;
use Mautic\CoreBundle\Controller\CommonController;
use Mautic\PluginBundle\Helper\IntegrationHelper;
use MauticPlugin\MauticCrmBundle\Integration\HubspotIntegration;
use Psr\Log\LoggerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class PublicController extends CommonController
{
public function contactDataAction(Request $request, LoggerInterface $mauticLogger, IntegrationHelper $integrationHelper): Response
{
$content = $request->getContent();
if (!empty($content)) {
$data = json_decode($content, true); // 2nd param to get as array
} else {
return new Response('ERROR');
}
$integration = 'Hubspot';
$integrationObject = $integrationHelper->getIntegrationObject($integration);
\assert($integrationObject instanceof HubspotIntegration);
foreach ($data as $info) {
$object = explode('.', $info['subscriptionType']);
$id = $info['objectId'];
try {
switch ($object[0]) {
case 'contact':
$executed = [];
$integrationObject->getLeads($id, null, $executed);
break;
case 'company':
$integrationObject->getCompanies($id);
break;
}
} catch (\Exception $ex) {
$mauticLogger->log('error', 'ERROR on Hubspot webhook: '.$ex->getMessage());
}
}
return new Response('OK');
}
}
|