Skip to content
Snippets Groups Projects
Commit 8dcc1547 authored by michael.minelli's avatar michael.minelli
Browse files

Merge branch 'add-users-exercise-on-assigment-route' into v4.1.0

parents 3e6e6ff2 5a39ad4a
No related branches found
No related tags found
No related merge requests found
...@@ -12,7 +12,7 @@ import logger from '../shared/logging/WinstonLogger.js'; ...@@ -12,7 +12,7 @@ import logger from '../shared/logging/WinstonLogger.js';
import DojoValidators from '../helpers/DojoValidators.js'; import DojoValidators from '../helpers/DojoValidators.js';
import { Prisma } from '@prisma/client'; import { Prisma } from '@prisma/client';
import db from '../helpers/DatabaseHelper.js'; import db from '../helpers/DatabaseHelper.js';
import { Assignment } from '../types/DatabaseTypes.js'; import { Assignment, Exercise } from '../types/DatabaseTypes.js';
import AssignmentManager from '../managers/AssignmentManager.js'; import AssignmentManager from '../managers/AssignmentManager.js';
import fs from 'fs'; import fs from 'fs';
import path from 'path'; import path from 'path';
...@@ -66,7 +66,8 @@ class AssignmentRoutes implements RoutesManager { ...@@ -66,7 +66,8 @@ class AssignmentRoutes implements RoutesManager {
private async getAssignment(req: express.Request, res: express.Response) { private async getAssignment(req: express.Request, res: express.Response) {
const assignment: Partial<Assignment> | undefined = req.boundParams.assignment; const assignment: Partial<Assignment> | undefined = req.boundParams.assignment;
if ( assignment && !assignment.published && !await AssignmentManager.isUserAllowedToAccessAssignment(assignment as Assignment, req.session.profile) ) { if ( assignment ) {
if ( !assignment.published && !await AssignmentManager.isUserAllowedToAccessAssignment(assignment as Assignment, req.session.profile) ) {
delete assignment.gitlabId; delete assignment.gitlabId;
delete assignment.gitlabLink; delete assignment.gitlabLink;
delete assignment.gitlabCreationInfo; delete assignment.gitlabCreationInfo;
...@@ -76,7 +77,30 @@ class AssignmentRoutes implements RoutesManager { ...@@ -76,7 +77,30 @@ class AssignmentRoutes implements RoutesManager {
delete assignment.exercises; delete assignment.exercises;
} }
return assignment ? req.session.sendResponse(res, StatusCodes.OK, DojoModelsHelper.getFullSerializableObject(assignment)) : res.status(StatusCodes.NOT_FOUND).send(); const getExercises = req.query.getMyExercises;
let exercises: Array<Omit<Exercise, 'assignment'>> = [];
if ( getExercises ) {
exercises = await db.exercise.findMany({
where : {
assignmentName: assignment.name,
members : {
some: {
id: req.session.profile.id
}
}
},
include: {
assignment: false,
members : true,
results : true
}
});
}
return req.session.sendResponse(res, StatusCodes.OK, DojoModelsHelper.getFullSerializableObject(Object.assign(assignment, { myExercises: exercises })));
} else {
return res.status(StatusCodes.NOT_FOUND).send();
}
} }
private async createAssignment(req: express.Request, res: express.Response) { private async createAssignment(req: express.Request, res: express.Response) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment