Skip to content
Snippets Groups Projects

Resolve "Endpoints for importing grades"

Files

@@ -19,6 +19,7 @@ package nl.tudelft.labracore.controller;
import javax.transaction.Transactional;
import nl.tudelft.labracore.dto.create.GradeBatchImportDTO;
import nl.tudelft.labracore.dto.create.GradeCreateDTO;
import nl.tudelft.labracore.dto.id.PersonIdDTO;
import nl.tudelft.labracore.dto.patch.GradePatchDTO;
@@ -26,6 +27,7 @@ import nl.tudelft.labracore.model.Grade;
import nl.tudelft.labracore.model.Person;
import nl.tudelft.labracore.repository.GradeRepository;
import nl.tudelft.labracore.security.user.AuthenticatedPerson;
import nl.tudelft.labracore.service.GradeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -37,6 +39,8 @@ import org.springframework.web.bind.annotation.*;
public class GradeController {
@Autowired
private GradeRepository gr;
@Autowired
private GradeService gs;
/**
* Adds a grade by processing the sent grade creation object.
@@ -68,4 +72,17 @@ public class GradeController {
patch.setGradedBy(new PersonIdDTO(grader.getId()));
return patch.apply(gr.findByIdOrThrow(id)).getId();
}
/**
* Imports a batch of grades.
*
* @param gradeImport The import with all the grades.
*/
@PatchMapping("import/{assignmentId}")
@PreAuthorize("hasAuthority('GRADE_UPDATE')")
public void importGrades(@PathVariable Long assignmentId, @RequestBody GradeBatchImportDTO gradeImport,
@AuthenticatedPerson Person grader) {
gs.importGrades(assignmentId, gradeImport, grader);
}
}
Loading