protected function sendHookTestAction(Request $request) { $url = InputHelper::url($request->request->get('url')); // validate the URL if ($url == '' || !$url) { // default to an error message $dataArray = array('success' => 1, 'html' => '<div class="has-error"><span class="help-block">' . $this->factory->getTranslator()->trans('mautic.webhook.label.no.url') . '</span></div>'); return $this->sendJsonResponse($dataArray); } // get the selected types $selectedTypes = InputHelper::cleanArray($request->request->get('types')); $payloadPaths = $this->getPayloadPaths($selectedTypes); $payloads = $this->loadPayloads($payloadPaths); $now = new \DateTime(); $payloads['timestamp'] = $now->format('c'); // Set up custom headers $headers = ['Content-Type' => 'application/json']; // instantiate new http class $http = new Http(); // set the response $response = $http->post($url, json_encode($payloads), $headers); // default to an error message $dataArray = array('success' => 1, 'html' => '<div class="has-error"><span class="help-block">' . $this->factory->getTranslator()->trans('mautic.webhook.label.warning') . '</span></div>'); // if we get a 200 response convert to success message if ($response->code == 200) { $dataArray['html'] = '<div class="has-success"><span class="help-block">' . $this->factory->getTranslator()->trans('mautic.webhook.label.success') . '</span></div>'; } return $this->sendJsonResponse($dataArray); }