diff --git a/server/endpoints/api/document/index.js b/server/endpoints/api/document/index.js index 3226a740b2b..ae8093b4156 100644 --- a/server/endpoints/api/document/index.js +++ b/server/endpoints/api/document/index.js @@ -693,7 +693,11 @@ function apiDocumentEndpoints(app) { try { const { folderName } = request.params; const result = await getDocumentsByFolder(folderName); - response.status(200).json(result); + response.status(result.code).json({ + folder: result.folder, + documents: result.documents, + error: result.error, + }); } catch (e) { console.error(e.message, e); response.sendStatus(500).end(); diff --git a/server/swagger/openapi.json b/server/swagger/openapi.json index fcb87dad120..cdca9e46cae 100644 --- a/server/swagger/openapi.json +++ b/server/swagger/openapi.json @@ -1287,7 +1287,6 @@ ], "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { @@ -1315,7 +1314,8 @@ } } } - } + }, + "description": "OK" }, "403": { "description": "Forbidden", diff --git a/server/utils/files/index.js b/server/utils/files/index.js index 73c442b63b4..eea43dd3210 100644 --- a/server/utils/files/index.js +++ b/server/utils/files/index.js @@ -95,15 +95,34 @@ async function viewLocalFiles() { return directory; } +/** + * Gets the documents by folder name. + * @param {string} folderName - The name of the folder to get the documents from. + * @returns {Promise<{folder: string, documents: any[], code: number, error: string}>} - The documents by folder name. + */ async function getDocumentsByFolder(folderName = "") { - if (!folderName) throw new Error("Folder name must be provided."); + if (!folderName) { + return { + folder: folderName, + documents: [], + code: 400, + error: "Folder name must be provided.", + }; + } + const folderPath = path.resolve(documentsPath, normalizePath(folderName)); if ( !isWithin(documentsPath, folderPath) || !fs.existsSync(folderPath) || !fs.lstatSync(folderPath).isDirectory() - ) - throw new Error(`Folder "${folderName}" does not exist.`); + ) { + return { + folder: folderName, + documents: [], + code: 404, + error: `Folder "${folderName}" does not exist.`, + }; + } const documents = []; const filenames = {}; @@ -136,7 +155,7 @@ async function getDocumentsByFolder(folderName = "") { ); } - return { folder: folderName, documents }; + return { folder: folderName, documents, code: 200, error: null }; } /**