Skip to content

Commit 7f5e512

Browse files
committed
fix backend issue to convert user id from string to mongoose ObjectId
1 parent cf194d2 commit 7f5e512

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

backend/controllers/project.controller.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const { Project, User } = require('../models');
2+
const { ObjectId } = require('mongodb');
23

34
const ProjectController = {};
45

@@ -104,6 +105,23 @@ ProjectController.updateManagedByUsers = async function (req, res) {
104105

105106
ProjectController.bulkUpdateManagedByUsers = async function (req, res) {
106107
const { bulkOps } = req.body;
108+
109+
// Convert string IDs to ObjectId in bulkOps
110+
bulkOps.forEach((op) => {
111+
if (op?.updateOne?.filter._id) {
112+
op.updateOne.filter._id = ObjectId(op.updateOne.filter._id);
113+
}
114+
if (op?.updateOne?.update) {
115+
const update = op.updateOne.update;
116+
if (update?.$addToSet?.managedByUsers) {
117+
update.$addToSet.managedByUsers = ObjectId(update.$addToSet.managedByUsers);
118+
}
119+
if (update?.$pull?.managedByUsers) {
120+
update.$pull.managedByUsers = ObjectId(update.$pull.managedByUsers);
121+
}
122+
}
123+
});
124+
107125
try {
108126
const result = await Project.bulkWrite(bulkOps);
109127
res.status(200).json(result);

backend/controllers/user.controller.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const jwt = require('jsonwebtoken');
2+
const { ObjectId } = require('mongodb');
23

34
const EmailController = require('./email.controller');
45
const { CONFIG_AUTH } = require('../config');
@@ -311,7 +312,7 @@ UserController.updateManagedProjects = async function (req, res) {
311312
managedByUsers = managedByUsers.filter((id) => id !== UserId);
312313
}
313314

314-
// Update user's managedProjects
315+
// Update user's managedProjects
315316
user.managedProjects = managedProjects;
316317
await user.save({ validateBeforeSave: false });
317318

@@ -328,6 +329,23 @@ UserController.updateManagedProjects = async function (req, res) {
328329

329330
UserController.bulkUpdateManagedProjects = async function (req, res) {
330331
const { bulkOps } = req.body;
332+
333+
// Convert string IDs to ObjectId in bulkOps
334+
bulkOps.forEach((op) => {
335+
if (op?.updateOne?.filter._id) {
336+
op.updateOne.filter._id = ObjectId(op.updateOne.filter._id);
337+
}
338+
if (op?.updateOne?.update) {
339+
const update = op.updateOne.update;
340+
if (update?.$addToSet?.managedProjects) {
341+
update.$addToSet.managedProjects = ObjectId(update.$addToSet.managedProjects);
342+
}
343+
if (update?.$pull?.managedProjects) {
344+
update.$pull.managedProjects = ObjectId(update.$pull.managedProjects);
345+
}
346+
}
347+
});
348+
331349
try {
332350
const result = await User.bulkWrite(bulkOps);
333351
res.status(200).json(result);

0 commit comments

Comments
 (0)