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