getMethod()); if (method_exists($this, $method.'Action')) { return $this->forwardWithPost( static::class.'::'.$method.'Action', $request->request->all(), [ 'objectAlias' => $objectAlias, ], $request->query->all() ); } else { throw new HttpException(Response::HTTP_FORBIDDEN, 'This endpoint is not able to process '.strtoupper($method).' requests.'); } } public function getAction( Request $request, DynamicContentHelper $helper, DeviceTrackingServiceInterface $deviceTrackingService, ContactRequestHelper $contactRequestHelper, $objectAlias ): Response { /** @var PageModel $pageModel */ $pageModel = $this->getModel('page'); $lead = $contactRequestHelper->getContactFromQuery($pageModel->getHitQuery($request)); $content = $helper->getDynamicContentForLead($objectAlias, $lead); $trackedDevice = $deviceTrackingService->getTrackedDevice(); $deviceId = (null === $trackedDevice ? null : $trackedDevice->getTrackingId()); return empty($content) ? new Response('', Response::HTTP_NO_CONTENT) : new JsonResponse( [ 'content' => $content, 'id' => $lead->getId(), 'sid' => $deviceId, 'device_id' => $deviceId, ] ); } }