From bf0843a9fa1e009f3f83f6176431f5657ea048ba Mon Sep 17 00:00:00 2001
From: Guillaume Heurtier <guillaume.heurtier@maarch.org>
Date: Tue, 11 Feb 2020 16:05:56 +0100
Subject: [PATCH] FEAT #12072 TIME 0:05 added get email signature by id

---
 rest/index.php                              |  1 +
 src/app/user/controllers/UserController.php | 24 ++++++++++++++++++++-
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/rest/index.php b/rest/index.php
index f2adb8dfa11..5dc72097502 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -517,6 +517,7 @@ $app->delete('/currentUser/emailSignature/{id}', \User\controllers\UserControlle
 $app->put('/currentUser/groups/{groupId}/baskets/{basketId}', \User\controllers\UserController::class . ':updateCurrentUserBasketPreferences');
 $app->get('/currentUser/templates', \User\controllers\UserController::class . ':getTemplates');
 $app->get('/currentUser/emailSignatures', \User\controllers\UserController::class . ':getCurrentUserSignatures');
+$app->get('/currentUser/emailSignatures/{id}', \User\controllers\UserController::class . ':getCurrentUserSignatureContentById');
 
 //Notifications
 $app->get('/notifications', \Notification\controllers\NotificationController::class . ':get');
diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php
index a0e13f7605d..0ab2f1b0d07 100755
--- a/src/app/user/controllers/UserController.php
+++ b/src/app/user/controllers/UserController.php
@@ -1720,11 +1720,33 @@ class UserController
 
         foreach ($signatureModels as $signature) {
             $signatures[] = [
-                'label' => $signature['title'],
+                'id'      => $signature['id'],
+                'label'   => $signature['title'],
                 'content' => $signature['html_body']
             ];
         }
 
         return $response->withJson(['emailSignatures' => $signatures]);
     }
+
+    public static function getCurrentUserSignatureContentById(Request $request, Response $response, array $args)
+    {
+        if (!Validator::intVal()->validate($args['id'])) {
+            return $response->withStatus(400)->withJson(['errors' => 'Body param id is missing']);
+        }
+
+        $signatureModels = UserModel::getEmailSignatureWithSignatureIdById(['userId' => $GLOBALS['userId'], 'signatureId' => $args['id']]);
+
+        if (empty($signatureModels)) {
+            return $response->withStatus(404)->withJson(['errors' => 'Signature not found']);
+        }
+
+        $signature = [
+            'id'      => $signatureModels['id'],
+            'label'   => $signatureModels['title'],
+            'content' => $signatureModels['html_body']
+        ];
+
+        return $response->withJson(['emailSignature' => $signature]);
+    }
 }
-- 
GitLab