From aa210ef971d495e57b21e361abf4ae2be7b3f17b Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Wed, 16 Jan 2019 14:19:18 +0100
Subject: [PATCH] FEAT #9284 get export template

---
 phpunit.xml                                   |  1 +
 rest/index.php                                |  2 ++
 .../resource/controllers/ExportController.php | 31 +++++++++----------
 .../app/resource/ExportControllerTest.php     | 28 +++++++++++++++++
 4 files changed, 46 insertions(+), 16 deletions(-)
 create mode 100644 test/unitTests/app/resource/ExportControllerTest.php

diff --git a/phpunit.xml b/phpunit.xml
index 43d61f22e10..fc229e56468 100755
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -25,6 +25,7 @@
             <file>test/unitTests/app/report/ReportControllerTest.php</file>
             <file>test/unitTests/app/resource/ResControllerTest.php</file>
             <file>test/unitTests/app/resource/ResourceListControllerTest.php</file>
+            <file>test/unitTests/app/resource/ExportControllerTest.php</file>
             <file>test/unitTests/app/status/StatusControllerTest.php</file>
             <file>test/unitTests/app/user/UserControllerTest.php</file>
             <file>test/unitTests/app/versionUpdate/VersionUpdateControllerTest.php</file>
diff --git a/rest/index.php b/rest/index.php
index 6eedc24b6a7..4fc50f04e2f 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -258,6 +258,8 @@ $app->get('/resources/{resId}/isAllowed', \Resource\controllers\ResController::c
 $app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}', \Resource\controllers\ResourceListController::class . ':get');
 $app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}/filters', \Resource\controllers\ResourceListController::class . ':getFilters');
 
+$app->get('/resourcesList/exportTemplate', \Resource\controllers\ExportController::class . ':getExportTemplate');
+
 //Attachments
 $app->post('/attachments', \Attachment\controllers\AttachmentController::class . ':create');
 $app->get('/res/{resId}/attachments', \Attachment\controllers\AttachmentController::class . ':getAttachmentsListById');
diff --git a/src/app/resource/controllers/ExportController.php b/src/app/resource/controllers/ExportController.php
index 2e503e6a0cd..e3dfbc3b06e 100644
--- a/src/app/resource/controllers/ExportController.php
+++ b/src/app/resource/controllers/ExportController.php
@@ -36,6 +36,21 @@ use User\models\UserModel;
 
 class ExportController
 {
+    public function getExportTemplate(Request $request, Response $response)
+    {
+        $currentUser = UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]);
+
+        $template     = ExportTemplateModel::getByUserId(['userId' => $currentUser['id']]);
+        $delimiter    = "";
+        $templateData = "";
+        if (!empty($template)) {
+            $delimiter    = $template['delimiter'];
+            $templateData = (array)json_decode($template['data']);
+        }
+
+        return $response->withJson(['template' => $templateData, 'delimiter' => $delimiter]);
+    }
+
     public function getExport(Request $request, Response $response, array $aArgs)
     {
         $currentUser = UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]);
@@ -192,41 +207,25 @@ class ExportController
         }
 
         if ($value['value'] == 'getStatus') {
-
         } elseif ($value['value'] == 'getPriority') {
-
         } elseif ($value['value'] == 'getCopyEntities') {
-
         } elseif ($value['value'] == 'getDetailLink') {
-
         } elseif ($value['value'] == 'getParentFolder') {
-
         } elseif ($value['value'] == 'getCategory') {
-
         } elseif ($value['value'] == 'getInitiatorEntity') {
-
         } elseif ($value['value'] == 'getDestinationEntity') {
-
         } elseif ($value['value'] == 'getContactType') {
-
         } elseif ($value['value'] == 'getContactCivility') {
-
         } elseif ($value['value'] == 'getContactFunction') {
-
         } elseif ($value['value'] == 'getTags') {
-
         } elseif ($value['value'] == 'getSignatories') {
-
         } elseif ($value['value'] == 'getSignatureDates') {
-
         }
 
 
         $resources = [];
         if (!empty($resIds)) {
-
             $resources = ResourceListModel::get(['resIds' => $resIds]);
-
         }
 
         return $response->withJson(['resources' => $resources, 'basketLabel' => $basket['basket_name']]);
diff --git a/test/unitTests/app/resource/ExportControllerTest.php b/test/unitTests/app/resource/ExportControllerTest.php
new file mode 100644
index 00000000000..b4476834b74
--- /dev/null
+++ b/test/unitTests/app/resource/ExportControllerTest.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+* Copyright Maarch since 2008 under licence GPLv3.
+* See LICENCE.txt file at the root folder for more details.
+* This file is part of Maarch software.
+*
+*/
+
+use PHPUnit\Framework\TestCase;
+
+class ExportControllerTest extends TestCase
+{
+    public function testGetExportTemplate()
+    {
+        $ExportController = new \Resource\controllers\ExportController();
+
+        //  GET
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+
+        $response     = $ExportController->getExportTemplate($request, new \Slim\Http\Response());
+        $responseBody = json_decode((string)$response->getBody());
+
+        $this->assertInternalType('string', $responseBody->template);
+        $this->assertInternalType('string', $responseBody->delimiter);
+    }
+}
-- 
GitLab