From 57db5555b2f52d3bc7843fbeea8e0509d58d166b Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Wed, 27 Jun 2018 18:08:53 +0200
Subject: [PATCH] [Refactoring] Get categories

---
 rest/index.php                                |  1 +
 .../resource/controllers/ResController.php    |  6 ++++
 src/core/models/CoreConfigModel.php           | 34 +++++++++++--------
 3 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/rest/index.php b/rest/index.php
index 83b58730664..0584f1b4268 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -211,6 +211,7 @@ $app->post('/res/list', \Resource\controllers\ResController::class . ':getList')
 $app->get('/res/{resId}/lock', \Resource\controllers\ResController::class . ':isLock');
 $app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class . ':getNotesCountForCurrentUserById');
 $app->put('/res/externalInfos', \Resource\controllers\ResController::class . ':updateExternalInfos');
+$app->get('/categories', \Resource\controllers\ResController::class . ':getCategories');
 
 //SignatureBook
 $app->get('/{basketId}/signatureBook/resList', \SignatureBook\controllers\SignatureBookController::class . ':getResList');
diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php
index 8a963ce0426..2942cb2831f 100755
--- a/src/app/resource/controllers/ResController.php
+++ b/src/app/resource/controllers/ResController.php
@@ -20,6 +20,7 @@ use Docserver\models\DocserverModel;
 use Group\controllers\GroupController;
 use Note\models\NoteModel;
 use Group\models\ServiceModel;
+use SrcCore\models\CoreConfigModel;
 use Status\models\StatusModel;
 use SrcCore\models\ValidatorModel;
 use History\controllers\HistoryController;
@@ -375,4 +376,9 @@ class ResController
 
         return $response->withJson(['resources' => $resources, 'count' => count($resources)]);
     }
+
+    public function getCategories(Request $request, Response $response)
+    {
+        return $response->withJson(['categories' => CoreConfigModel::getLettersBoxCategories()]);
+    }
 }
diff --git a/src/core/models/CoreConfigModel.php b/src/core/models/CoreConfigModel.php
index a8c5a69ba32..47ff3f89575 100644
--- a/src/core/models/CoreConfigModel.php
+++ b/src/core/models/CoreConfigModel.php
@@ -153,25 +153,29 @@ class CoreConfigModel
     {
         $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'apps/maarch_entreprise/xml/config.xml']);
 
-        $categoriesTypes = [];
-        $categories      = $loadedXml->COLLECTION->categories;
-        if (count($categories) > 0) {
-            foreach ($categories->category as $category) {
-                $categoriesTmp = [
-                    'id'    => (string)$category->id,
-                    'label' => defined((string)$category->label) ? constant((string)$category->label) : (string)$category->label
-                ];
-
-                if ($category->id == (string)$categories->default_category) {
-                    $categoriesTmp['default_category'] = true;
-                } else {
-                    $categoriesTmp['default_category'] = false;
+        $categories = [];
+
+        foreach ($loadedXml->COLLECTION as $collection) {
+            if ($collection->id == 'letterbox_coll') {
+                foreach ($collection->categories->category as $category) {
+                    if ($category->id == (string)$collection->categories->default_category) {
+                        $categories[] = [
+                            'id'                => (string)$category->id,
+                            'label'             => defined($category->label) ? constant($category->label) : $category->label,
+                            'defaultCategory'   => true
+                        ];
+                    } else {
+                        $categories[] = [
+                            'id'                => (string)$category->id,
+                            'label'             => defined($category->label) ? constant($category->label) : $category->label,
+                            'defaultCategory'   => false
+                        ];
+                    }
                 }
-                $categoriesTypes[] = $categoriesTmp;
             }
         }
 
-        return $categoriesTypes;
+        return $categories;
     }
 
     public static function getXmlLoaded(array $aArgs)
-- 
GitLab