diff --git a/ExpressAPI/src/managers/ExerciseManager.ts b/ExpressAPI/src/managers/ExerciseManager.ts index bc64be63d2f0e3ec5970ea1400113d421aed8278..e18207f9be3d4becb8ff4f0ce1bc60f90d627ccb 100644 --- a/ExpressAPI/src/managers/ExerciseManager.ts +++ b/ExpressAPI/src/managers/ExerciseManager.ts @@ -15,11 +15,10 @@ class ExerciseManager { }) as unknown as Exercise ?? undefined; } - getFromAssignment(assignmentName: string, include: Prisma.ExerciseInclude | undefined = undefined): Promise<Array<Exercise>> { + // deleteFilter is a boolean that is true to get only deleted exercises, false to get only non-deleted exercises, and undefined to get all exercises + getFromAssignment(assignmentName: string, deleteFilter: boolean | undefined = undefined, include: Prisma.ExerciseInclude | undefined = undefined): Promise<Array<Exercise>> { return db.exercise.findMany({ - where : { - assignmentName: assignmentName - }, + where : { assignmentName: assignmentName, ...(deleteFilter !== undefined ? { deleted: deleteFilter } : {}) }, include: include }) as Promise<Array<Exercise>>; } diff --git a/ExpressAPI/src/routes/ExerciseRoutes.ts b/ExpressAPI/src/routes/ExerciseRoutes.ts index f3939c7c94905d684940337cb5024eec71dd456a..5137daaa404bf9ddbe0f98d93ba6af11d69ab4cb 100644 --- a/ExpressAPI/src/routes/ExerciseRoutes.ts +++ b/ExpressAPI/src/routes/ExerciseRoutes.ts @@ -133,7 +133,7 @@ class ExerciseRoutes implements RoutesManager { private async checkExerciseLimit(assignment: Assignment, members: Array<Gitlab.UserSchema>): Promise<Array<Gitlab.UserSchema>> { - const exercises: Array<Exercise> | undefined = await ExerciseManager.getFromAssignment(assignment.name, { members: true }); + const exercises: Array<Exercise> | undefined = await ExerciseManager.getFromAssignment(assignment.name, false, { members: true }); const reachedLimitUsers: Array<Gitlab.UserSchema> = []; if ( exercises.length > 0 ) { for ( const member of members ) {