Update:batchUpdate endpoint validate req.body is an array of objects

This commit is contained in:
advplyr 2024-12-01 12:49:39 -06:00
parent 2b5484243b
commit 0dedb09a07

View File

@ -539,12 +539,13 @@ class LibraryItemController {
*/ */
async batchUpdate(req, res) { async batchUpdate(req, res) {
const updatePayloads = req.body const updatePayloads = req.body
if (!updatePayloads?.length) { if (!Array.isArray(updatePayloads) || !updatePayloads.length) {
return res.sendStatus(500) Logger.error(`[LibraryItemController] Batch update failed. Invalid payload`)
return res.sendStatus(400)
} }
// Ensure that each update payload has a unique library item id // 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) { if (!libraryItemIds.length || libraryItemIds.length !== updatePayloads.length) {
Logger.error(`[LibraryItemController] Batch update failed. Each update payload must have a unique library item id`) Logger.error(`[LibraryItemController] Batch update failed. Each update payload must have a unique library item id`)
return res.sendStatus(400) return res.sendStatus(400)