From f480395f7abe0669ac6ab03fb722349bccd28a28 Mon Sep 17 00:00:00 2001
From: Guillaume Heurtier <guillaume.heurtier@maarch.org>
Date: Mon, 21 Oct 2019 15:00:10 +0200
Subject: [PATCH] FEAT #11454 TIME 0:40 get folders returns whether a folder is
 pinned or not

---
 .../folder/controllers/FolderController.php   | 24 +++++++++++++++----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/src/app/folder/controllers/FolderController.php b/src/app/folder/controllers/FolderController.php
index 80cbdb919c8..2f6a845fe8b 100755
--- a/src/app/folder/controllers/FolderController.php
+++ b/src/app/folder/controllers/FolderController.php
@@ -64,6 +64,14 @@ class FolderController
             if (isset($key[0])) {
                 $count = $foldersWithResources[$key[0]]['count'];
             }
+
+            $isPinned = !empty(
+                UserPinnedFolderModel::get([
+                    'where' => ['folder_id = ?', 'user_id = ?'],
+                    'data'  => [$folder['id'], $GLOBALS['id']]
+                ])
+            );
+
             $insert = [
                 'name'       => $folder['label'],
                 'id'         => $folder['id'],
@@ -72,7 +80,8 @@ class FolderController
                 'user_id'    => $folder['user_id'],
                 'parent_id'  => $folder['parent_id'],
                 'level'      => $folder['level'],
-                'countResources' => $count
+                'countResources' => $count,
+                'pinned'    => $isPinned
             ];
             if ($folder['level'] == 0) {
                 array_splice($tree, 0, 0, [$insert]);
@@ -120,6 +129,13 @@ class FolderController
             }
         }
 
+        $folder['pinned'] = !empty(
+            UserPinnedFolderModel::get([
+                'where' => ['folder_id = ?', 'user_id = ?'],
+                'data'  => [$folder['id'], $GLOBALS['id']]
+            ])
+        );
+
         return $response->withJson(['folder' => $folder]);
     }
 
@@ -690,8 +706,7 @@ class FolderController
             return $response->withStatus(400)->withJson(['errors' => 'Route id not found or is not an integer']);
         }
 
-        $folder = FolderController::getScopeFolders(['login' => $GLOBALS['userId'], 'folderId' => $args['id']]);
-        if (empty($folder[0])) {
+        if (!FolderController::hasFolders(['folders' => [$args['id']], 'userId' => $GLOBALS['id']])) {
             return $response->withStatus(400)->withJson(['errors' => 'Folder not found or out of your perimeter']);
         }
 
@@ -753,8 +768,7 @@ class FolderController
             return $response->withStatus(400)->withJson(['errors' => 'Route id not found or is not an integer']);
         }
 
-        $folder = FolderController::getScopeFolders(['login' => $GLOBALS['userId'], 'folderId' => $args['id']]);
-        if (empty($folder[0])) {
+        if (!FolderController::hasFolders(['folders' => [$args['id']], 'userId' => $GLOBALS['id']])) {
             return $response->withStatus(400)->withJson(['errors' => 'Folder not found or out of your perimeter']);
         }
 
-- 
GitLab