backend: Improve logging and response handling in bulkDeleteRooms function
This commit is contained in:
parent
bc01ef1caf
commit
39f755d207
@ -91,37 +91,31 @@ export const bulkDeleteRooms = async (req: Request, res: Response) => {
|
|||||||
const roomService = container.get(RoomService);
|
const roomService = container.get(RoomService);
|
||||||
const { roomIds, force } = req.query;
|
const { roomIds, force } = req.query;
|
||||||
const forceDelete = force === 'true';
|
const forceDelete = force === 'true';
|
||||||
logger.info(`Deleting rooms: ${roomIds}`);
|
logger.verbose(`Deleting rooms: ${roomIds}`);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const roomIdsArray = roomIds as string[];
|
const roomIdsArray = roomIds as string[];
|
||||||
|
|
||||||
const { deleted, markedForDeletion } = await roomService.bulkDeleteRooms(roomIdsArray, forceDelete);
|
const { deleted, markedForDeletion } = await roomService.bulkDeleteRooms(roomIdsArray, forceDelete);
|
||||||
const isSingleRoom = roomIdsArray.length === 1;
|
|
||||||
|
|
||||||
if (isSingleRoom) {
|
logger.info(`Deleted rooms: ${deleted.length}, marked for deletion: ${markedForDeletion.length}`);
|
||||||
// For a single room, no content is sent if fully deleted.
|
|
||||||
if (deleted.length > 0) {
|
|
||||||
return res.sendStatus(204);
|
|
||||||
}
|
|
||||||
|
|
||||||
// For a single room marked as deleted, return a message.
|
// All rooms were deleted
|
||||||
return res.status(202).json({ message: `Room ${roomIdsArray[0]} marked as deleted` });
|
|
||||||
}
|
|
||||||
|
|
||||||
// For multiple rooms
|
|
||||||
if (deleted.length > 0 && markedForDeletion.length === 0) {
|
if (deleted.length > 0 && markedForDeletion.length === 0) {
|
||||||
// All rooms were deleted
|
|
||||||
return res.sendStatus(204);
|
return res.sendStatus(204);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// All room were marked for deletion
|
||||||
if (deleted.length === 0 && markedForDeletion.length > 0) {
|
if (deleted.length === 0 && markedForDeletion.length > 0) {
|
||||||
// All rooms were marked as deleted
|
const message =
|
||||||
return res
|
markedForDeletion.length === 1
|
||||||
.status(202)
|
? `Room ${markedForDeletion[0]} marked for deletion`
|
||||||
.json({ message: `Rooms ${markedForDeletion.join(', ')} marked for deletion`, markedForDeletion });
|
: `Rooms ${markedForDeletion.join(', ')} marked for deletion`;
|
||||||
|
|
||||||
|
return res.status(202).json({ message });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Mixed result (some rooms deleted, some marked for deletion)
|
||||||
return res.status(200).json({ deleted, markedForDeletion });
|
return res.status(200).json({ deleted, markedForDeletion });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error(`Error deleting rooms: ${error}`);
|
logger.error(`Error deleting rooms: ${error}`);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user