'error', 'key' => 'download', 'method' => 'downloadGeneration', 'data' => '', ]; $token = $request->headers->get('x-auth-token'); if (!$token) { $body['data'] = 'No token provided !'; return $respond->statusUnauthorized()->createBody($body)->respond(); } // TODO : Add a key checker, expected "generationType" & "fileType" $data = json_decode($request->getContent(), true); $viewId = new CommonTextView( $id ); $pageOption = $query->getEntity($viewId); if (!$pageOption) { $body['method'] = 'read'; $body['data'] = "No page found for id : $viewId->text"; return $respond->statusUnprocessableEntity()->createBody($body)->respond(); } $pageDuplicateId = null; if (!isset($data['pageDuplicateId']) && !empty($data['pageDuplicateId'])); { $pageDuplicateId = $data['pageDuplicateId']; } $page = $pageOption->getPages(); $export = $page->first()->getCdf()->getExport(); $elements = []; if(!empty($pageDuplicateId)){ $pageDuplicate = $pageQuery->readDuplicate($pageDuplicateId); $elements = json_decode($pageDuplicate->getIdProducts(), true); } else { $elements = json_decode($page->first()->getIdProducts(), true) ; } $elements[] = ["id" => null, "name" => ""]; $medias = []; foreach ($elements as $element) { $medias = array_merge($medias, array_map(function ($media){ return $media->mediaId; }, $elementGabValue->positionMedias($export->getId(), $page->first()->getId(), $element['id'], $pageDuplicateId))) ; } $mediaIdsDam = [ "medias" => $medias, "def" => "bd" ]; $mediasFiles = $mediaCollect->collectMediaByIds($mediaIdsDam); $downloadFile = $query->downloadGeneration($pageOption, $pageDuplicateId, $mediasFiles); if ($downloadFile instanceof Exception) { $body['data'] = $downloadFile->getMessage(); $respond->statusUnprocessableEntity(); } else { $body['type'] = 'success'; $body['data'] = ["files" => $downloadFile, "name" => $pageOption->getName()]; $respond->statusOK(); } return $respond->createBody($body)->respond(); } }