headers->get('x-auth-token'); $security->isGranted('MAESTRO_PROJECT_TEMPLATE_UPDATE', $token); $keyRequest = "request"; $methodRequest = "get"; $templateName = $request->get('name'); if ($templateName) { $twigId = $request->get('twigId'); if ($twigId) { // Here we could get .jsx & .indt file but also other files that we want to store in database $keyFile = "file"; $methodFile = "getClientOriginalExtension"; $jsxFile = $request->files->get('fileJsx'); $indtFile = $request->files->get('fileIndt'); if ($jsxFile) { $jsx = "Jsx file"; $extension = $jsxFile->getClientOriginalExtension(); if (!$extension) { throw new NotFoundMaestroException("$jsx\'s extension", $keyFile, $methodFile); } // TODO : See FileMimeTypeValidator if ('jsx' !== $extension) { throw new NotFoundMaestroException("$jsx", $keyFile, $methodFile); } } if ($indtFile) { $indt = "Indt file"; $extension = $indtFile->getClientOriginalExtension(); if (!$extension) { throw new NotFoundMaestroException("$indt\'s extension", $keyFile, $methodFile); } // TODO : See FileMimeTypeValidator if ('indt' !== $extension) { throw new NotFoundMaestroException("$indt", $keyFile, $methodFile); } } $htmlfiles = []; if (!empty($request->files->all()) && isset($request->files->all()['htmlFile'])) { $htmlfiles = $request->files->all()['htmlFile']; } $previewfiles = []; if (!empty($request->files->all()) && isset($request->files->all()['filesPreview'])) { $previewfiles = $request->files->all()['filesPreview']; } $templateUpdateView = new TemplateUpdateView( $id, (int) $twigId, $templateName, null !== $request->get('regeneratedAt') ? $request->get('regeneratedAt') : date('Y-m-d'), null !== $request->get('numberPage') && (int) $request->get('numberPage') ? (int) $request->get('numberPage') : 0, null !== $request->get('numberElement') && (int) $request->get('numberElement') ? (int) $request->get('numberElement') : 0, $request->get('suffix'), $request->get('fontPath'), null !== $request->get('options') ? json_decode($request->get('options'), true) : [], null !== $request->get('medias') ? json_decode($request->get('medias'), true) : [], null !== $request->get('pictos') ? json_decode($request->get('pictos'), true) : [], $jsxFile ?: null, $indtFile ?: null, $htmlfiles, $previewfiles, ); $templateUpdated = $query->update($templateUpdateView); $templateView = $query->getTemplateData($templateUpdated); $body = new CommonResponseView($templateView, 'update', 'template', 'success'); $cache = new FilesystemAdapter(); $cache->clear(); return $respond->statusOK()->createBodyObject($body)->respond(); } else { throw new UnprocessableEntityMaestroException("twigId", $keyRequest, $methodRequest); } } else { throw new UnprocessableEntityMaestroException("name", $keyRequest, $methodRequest); } } }