@@ -11,6 +11,7 @@ import {
1111 AssignmentProblem ,
1212 AssignmentScore ,
1313 NonContainerAutoGrader ,
14+ ScoringType ,
1415 Submission ,
1516 SubmissionProblemScore ,
1617 SubmissionScore ,
@@ -25,6 +26,7 @@ import { downloadFile, initializeMinio } from '../../fileStorage'
2526import { createNewLab , sendSubmission , waitForJob } from '../../autograders/leviathan.service'
2627import { DockerFile , LabData , LabFile , SubmissionFile } from 'leviathan-node-sdk'
2728import path from 'path'
29+ import assignmentService from '../assignment/assignment.service'
2830
2931async function grade ( submissionId : number ) {
3032 const submissionModel = await submissionService . retrieve ( submissionId )
@@ -271,11 +273,27 @@ export async function callbackFailure(assignmentId: number, submissionId: number
271273//Currently just sets assignmentscore to the latest submission. Pulled this function out for easy future modification.
272274async function updateAssignmentScore ( submission : Submission , score : number ) {
273275 const assignmentScoreModel = await assignmentScoreService . retrieveByUser ( submission . assignmentId , submission . userId )
276+ const assignment = await assignmentService . retrieve ( submission . assignmentId , submission . courseId )
277+
274278 if ( assignmentScoreModel ) {
275279 //If assignmentScore already exists, update existing entity
276280 const assignmentScore = serializeAssignmentScore ( assignmentScoreModel )
277281 assignmentScore . score = score
278- assignmentScoreService . update ( assignmentScore )
282+
283+ // todo use scoring type in assignment entity, leaving this alone for now,
284+ // grader endpoint needs to be refactored
285+ switch ( assignment ! . scoringType ) {
286+ case ScoringType . HIGHEST_SCORE :
287+ break
288+ case ScoringType . LATEST_SUBMISSION :
289+ break
290+ case ScoringType . NO_SCORE :
291+ break
292+ default :
293+ break
294+ }
295+
296+ await assignmentScoreService . update ( assignmentScore )
279297 } else {
280298 //Otherwise create a new one
281299 const assignmentScore : AssignmentScore = {
0 commit comments