diff --git a/src/modules/project/repositories/project.repository.js b/src/modules/project/repositories/project.repository.js index e140deb..c493fa7 100644 --- a/src/modules/project/repositories/project.repository.js +++ b/src/modules/project/repositories/project.repository.js @@ -428,6 +428,9 @@ class ProjectRepository { in: userIds.map((id) => parseInt(id)), }, status: "active", + project: { + status: "active" + } }, include: { user: { diff --git a/src/modules/project/services/project.service.js b/src/modules/project/services/project.service.js index 6d5a54b..5758e40 100644 --- a/src/modules/project/services/project.service.js +++ b/src/modules/project/services/project.service.js @@ -541,6 +541,9 @@ class ProjectService { if (!project) { return error(new NotFoundError("Project not found")); } + if (project.status !== "active") { + return error(new ConflictError("Cannot assign member to a non-active project")); + } const user = await projectRepository.findUserByIdAndActive(id_user); if (!user) { diff --git a/src/routes/project.routes.js b/src/routes/project.routes.js index 459a47c..23335b0 100644 --- a/src/routes/project.routes.js +++ b/src/routes/project.routes.js @@ -853,7 +853,7 @@ router.get('/interns', verifyJWT, isMentorOrAdmin, projectController.getInterns) * 404: * description: Project or User not found * 409: - * description: Conflict (User is already an active member of this project) + * description: Conflict (User is already an active member of this project or target project is not active) * 500: * description: Internal server error */