headers->get('x-auth-token'); $security->isGranted('MAESTRO_PROJECT_PROJECTS_READ', $token); $export = $request->attributes->get('get'); $elementIds = []; foreach ($export->getTemplates() as $elementTypeTemplate) { $ids = $elementTypeTemplate->getElementsPIM() ?? []; foreach ($ids as $id) { $elementIds[] = $id; } } $view = new PageElementsView( // Not a 'real' PageElementsView since there is no pages in XML export null, $elementIds, $export->getId(), null ); $elementsGabValues = $elementGabValueQuery->getElementsGabValues($view, $export); $templateId = $export->getTemplates()->first()->getDefaultTemplate(); $templateView = new CommonIdView( $templateId ); $exportContent = $templateReadQuery->getContent($elementsGabValues, $templateView, $export, null, []); $key = 'twig'; $method = 'getContent'; if (isset($exportContent['content'])) { if (!$templateTwigExtension->isHtml($exportContent['content'])) { $errors = $templateTwigExtension->validateContent($exportContent['content']); if (empty($errors)) { return new Response($exportContent['content']); // JsonResponse will escape special chars } else { $errorList = $templateTwigExtension->getValidationErrorList($errors); throw new UnprocessableEntityMaestroException($errorList, $key, 'validateContent'); } } else { throw new UnprocessableEntityMaestroException('(Found HTML instead of XML)', $key, 'validateStructure'); } } else { throw new UnprocessableEntityMaestroException('Missing parameter ! No content provided !', $key, $method); } } }