From 65b6fdcc834598778667c18431712f0bbd762aa6 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Wed, 17 Sep 2025 12:58:20 -0700 Subject: [PATCH 1/2] patch folder name GET request response --- server/endpoints/api/document/index.js | 8 +++++++- server/swagger/openapi.json | 4 ++-- server/utils/files/index.js | 27 ++++++++++++++++++++++---- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/server/endpoints/api/document/index.js b/server/endpoints/api/document/index.js index 3226a740b2b..d5d107ad6b8 100644 --- a/server/endpoints/api/document/index.js +++ b/server/endpoints/api/document/index.js @@ -693,7 +693,13 @@ 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..fed55fb0494 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: "custom-documents", + 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: "custom-documents", + 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 }; } /** From 7ea27596bd342ffbc7736969e01eabcb2c334230 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Wed, 17 Sep 2025 13:04:13 -0700 Subject: [PATCH 2/2] fix response cb --- server/endpoints/api/document/index.js | 12 +++++------- server/utils/files/index.js | 4 ++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/server/endpoints/api/document/index.js b/server/endpoints/api/document/index.js index d5d107ad6b8..ae8093b4156 100644 --- a/server/endpoints/api/document/index.js +++ b/server/endpoints/api/document/index.js @@ -693,13 +693,11 @@ function apiDocumentEndpoints(app) { try { const { folderName } = request.params; const result = await getDocumentsByFolder(folderName); - response - .status(result.code) - .json({ - folder: result.folder, - documents: result.documents, - error: result.error, - }); + 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/utils/files/index.js b/server/utils/files/index.js index fed55fb0494..eea43dd3210 100644 --- a/server/utils/files/index.js +++ b/server/utils/files/index.js @@ -103,7 +103,7 @@ async function viewLocalFiles() { async function getDocumentsByFolder(folderName = "") { if (!folderName) { return { - folder: "custom-documents", + folder: folderName, documents: [], code: 400, error: "Folder name must be provided.", @@ -117,7 +117,7 @@ async function getDocumentsByFolder(folderName = "") { !fs.lstatSync(folderPath).isDirectory() ) { return { - folder: "custom-documents", + folder: folderName, documents: [], code: 404, error: `Folder "${folderName}" does not exist.`,