From 0dedb09a07c3286d2383892520c107dfb06603c2 Mon Sep 17 00:00:00 2001 From: advplyr Date: Sun, 1 Dec 2024 12:49:39 -0600 Subject: [PATCH] Update:batchUpdate endpoint validate req.body is an array of objects --- server/controllers/LibraryItemController.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/controllers/LibraryItemController.js b/server/controllers/LibraryItemController.js index 92bc3833..5aaacee0 100644 --- a/server/controllers/LibraryItemController.js +++ b/server/controllers/LibraryItemController.js @@ -539,12 +539,13 @@ class LibraryItemController { */ async batchUpdate(req, res) { const updatePayloads = req.body - if (!updatePayloads?.length) { - return res.sendStatus(500) + if (!Array.isArray(updatePayloads) || !updatePayloads.length) { + Logger.error(`[LibraryItemController] Batch update failed. Invalid payload`) + return res.sendStatus(400) } // Ensure that each update payload has a unique library item id - const libraryItemIds = [...new Set(updatePayloads.map((up) => up.id))] + const libraryItemIds = [...new Set(updatePayloads.map((up) => up?.id).filter((id) => id))] if (!libraryItemIds.length || libraryItemIds.length !== updatePayloads.length) { Logger.error(`[LibraryItemController] Batch update failed. Each update payload must have a unique library item id`) return res.sendStatus(400)