From efc1dd6b89a3d57be231f97c04bec0aa48bb7a69 Mon Sep 17 00:00:00 2001 From: Quentin RIBAC <quentin.ribac@xelians.fr> Date: Mon, 15 Nov 2021 15:15:39 +0100 Subject: [PATCH] FEAT #18282 TIME 0:30 fixed provided versions for /rest/content and /rest/originalContent --- .../resource/controllers/ResController.php | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php index b7390089c1a..21bf966c6bb 100755 --- a/src/app/resource/controllers/ResController.php +++ b/src/app/resource/controllers/ResController.php @@ -440,13 +440,24 @@ class ResController extends ResourceControlController } elseif (empty($document['filename'])) { return $response->withStatus(400)->withJson(['errors' => 'Document has no file']); } + $originalFormat = $document['format']; $creatorId = $document['typist']; $subject = $document['subject']; - $convertedDocument = ConvertPdfController::getConvertedPdfById(['resId' => $aArgs['resId'], 'collId' => 'letterbox_coll']); - if (!empty($convertedDocument['errors'])) { - return $response->withStatus(400)->withJson(['errors' => 'Conversion error : ' . $convertedDocument['errors']]); + $signedDocument = AdrModel::getDocuments([ + 'select' => ['id', 'docserver_id', 'path', 'filename', 'fingerprint'], + 'where' => ['res_id = ?', 'type = ?', 'version = ?'], + 'data' => [$args['resId'], 'SIGN', $document['version']], + 'limit' => 1 + ]); + if (!empty($signedDocument[0]) && !empty($signedDocuments[0]['id'])) { + $convertedDocument = $signedDocument[0]; + } else { + $convertedDocument = ConvertPdfController::getConvertedPdfById(['resId' => $aArgs['resId'], 'collId' => 'letterbox_coll']); + if (!empty($convertedDocument['errors'])) { + return $response->withStatus(400)->withJson(['errors' => 'Conversion error : ' . $convertedDocument['errors']]); + } } $document = $convertedDocument; @@ -648,14 +659,6 @@ class ResController extends ResourceControlController } $subject = $document['subject']; - $convertedDocument = AdrModel::getDocuments([ - 'select' => ['docserver_id', 'path', 'filename', 'fingerprint'], - 'where' => ['res_id = ?', 'type = ?', 'version = ?'], - 'data' => [$args['resId'], 'SIGN', $document['version']], - 'limit' => 1 - ]); - $document = $convertedDocument[0] ?? $document; - $docserver = DocserverModel::getByDocserverId(['docserverId' => $document['docserver_id'], 'select' => ['path_template', 'docserver_type_id']]); if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) { return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']); -- GitLab