diff --git a/src/app/folder/controllers/FolderController.php b/src/app/folder/controllers/FolderController.php index 83a89b95e689d437b69e7c3ea99dc6c6e1a12af7..096781569c85135ee2706f12f2b28b4f05b7926a 100755 --- a/src/app/folder/controllers/FolderController.php +++ b/src/app/folder/controllers/FolderController.php @@ -107,12 +107,14 @@ class FolderController } $folder = $folder[0]; + $ownerInfo = UserModel::getById(['select' => ['firstname', 'lastname'], 'id' => $folder['user_id']]); + $folder['ownerDisplayName'] = $ownerInfo['firstname'] . ' ' . $ownerInfo['lastname']; $folder['sharing']['entities'] = []; if ($folder['public']) { - $entitiesFolder = EntityFolderModel::getByFolderId(['folder_id' => $args['id']]); + $entitiesFolder = EntityFolderModel::getByFolderId(['folder_id' => $args['id'], 'select' => ['entities_folders.entity_id', 'entities_folders.edition', 'entities.entity_label']]); foreach ($entitiesFolder as $value) { - $folder['sharing']['entities'][] = ['entity_id' => $value['entity_id'], 'edition' => $value['edition']]; + $folder['sharing']['entities'][] = ['entity_id' => $value['entity_id'], 'edition' => $value['edition'], 'label' => $value['entity_label']]; } } @@ -193,7 +195,7 @@ class FolderController return $response->withStatus(400)->withJson(['errors' => 'Parent_id and id can not be the same']); } if (!empty($data['parent_id']) && FolderController::isParentFolder(['parent_id' => $data['parent_id'], 'id' => $aArgs['id']])) { - return $response->withStatus(400)->withJson(['errors' => 'Id is a parent of parent_id']); + return $response->withStatus(400)->withJson(['errors' => 'parent_id does not exist or Id is a parent of parent_id']); } $folder = FolderController::getScopeFolders(['login' => $GLOBALS['userId'], 'folderId' => $aArgs['id'], 'edition' => true]); diff --git a/src/app/folder/models/EntityFolderModelAbstract.php b/src/app/folder/models/EntityFolderModelAbstract.php index 8ac58aa90507325c23482a1a09780d6c48db69fb..d8fda6b8b089f8046f82cfc4ae95554e350b49d1 100755 --- a/src/app/folder/models/EntityFolderModelAbstract.php +++ b/src/app/folder/models/EntityFolderModelAbstract.php @@ -23,7 +23,8 @@ class EntityFolderModelAbstract $entitiesFolder = DatabaseModel::select([ 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], - 'table' => ['entities_folders'], + 'table' => ['entities_folders', 'entities'], + 'left_join' => ['entities_folders.entity_id = entities.id'], 'where' => ['folder_id = ?'], 'data' => [$aArgs['folder_id']] ]); diff --git a/test/unitTests/app/folder/FolderControllerTest.php b/test/unitTests/app/folder/FolderControllerTest.php index 6b369d2f7107e7adc2b87eaa4dc16e73fd6da38f..3b2da55618bdc8c2a54435df88d59123df56213b 100755 --- a/test/unitTests/app/folder/FolderControllerTest.php +++ b/test/unitTests/app/folder/FolderControllerTest.php @@ -86,7 +86,7 @@ class FolderControllerTest extends TestCase $response = $folderController->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame('Parent Folder not found or out of your perimeter', $responseBody->errors); + $this->assertSame('parent_id does not exist or Id is a parent of parent_id', $responseBody->errors); } public function testGetById() @@ -106,6 +106,8 @@ class FolderControllerTest extends TestCase $this->assertSame(0, $responseBody->folder->level); $this->assertInternalType('array', $responseBody->folder->sharing->entities); $this->assertInternalType('integer', $responseBody->folder->user_id); + $this->assertNotEmpty($responseBody->folder->user_id); + $this->assertNotEmpty($responseBody->folder->ownerDisplayName); // ERROR $response = $folderController->getById($request, new \Slim\Http\Response(), ['id' => '123456789']);