Skip to content

Commit

Permalink
Merge pull request #14 from dicoding-dev/feature/enable-fully-auto-gr…
Browse files Browse the repository at this point in the history
…ade-for-approval-scenario

Enable Auto Approve for Back-End Pemula Google Cloud
  • Loading branch information
dimasmds committed Nov 3, 2023
2 parents 01c1b6d + 9c7e7d4 commit 3cd40d3
Show file tree
Hide file tree
Showing 6 changed files with 530 additions and 512 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
},
"devDependencies": {
"@types/jest": "^29.1.2",
"@types/minimist": "^1.2.4",
"@types/newman": "^5.3.1",
"@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ class CourseSubmissionReview {
rating: courseSubmissionAcception.rating,
message: courseSubmissionAcception.messages,
status: ReviewResultStatus.Approve,
checklist: this.submissionCriteriaCheck.reviewChecklistResult
checklist: this.submissionCriteriaCheck.reviewChecklistResult,
draft: false,
}
}

Expand All @@ -52,9 +53,10 @@ class CourseSubmissionReview {
rating: 0,
message: courseSubmissionRejection.messages,
status: ReviewResultStatus.Reject,
checklist: this.submissionCriteriaCheck.reviewChecklistResult
checklist: this.submissionCriteriaCheck.reviewChecklistResult,
draft: true,
}
}
}

export default CourseSubmissionReview
export default CourseSubmissionReview
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ interface ReviewResult {
rating: number,
message: string,
status: ReviewResultStatus,
checklist: SubmissionRequirement
checklist: SubmissionRequirement,
draft: boolean,
}

export enum ReviewResultStatus {
Approve = "Approve",
Reject = "Reject",
}

export default ReviewResult
export default ReviewResult
3 changes: 2 additions & 1 deletion src/service/report-generator/report-generator.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ describe('checklist id resolver test', () => {
rating: 5,
status: ReviewResultStatus.Approve,
checklist: submissionRequirement,
message: 'Selamat'
message: 'Selamat',
draft: false,
}

const studentProjectPath = './test/student-project/project-with-correct-autoreview-config'
Expand Down
17 changes: 15 additions & 2 deletions src/service/report-generator/report-generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class ReportGenerator {
checklist: reviewResult.checklist,
checklist_keys: this.getCompletedChecklist(reviewResult),
is_passed: isApproved,
is_draft: true,
is_draft: this.getDraftDecision(isApproved, autoReviewConfig),
};

this.result.push(summary);
Expand All @@ -41,13 +41,26 @@ class ReportGenerator {
raiseDomainEvent('report generated')
}

private getDraftDecision(isApproved: boolean, autoReviewConfig: any): boolean {
const allowedCoursesThatFullyGrading = [
342, // Back-End Pemula with Google Cloud
]

if (allowedCoursesThatFullyGrading.includes(autoReviewConfig.course_id)) {
// set `draft` to false, if approved is true
return !isApproved
}

return true
}

private getCompletedChecklist(reviewResult: ReviewResult) {
return Object.keys(reviewResult.checklist)
.filter(requirementName => reviewResult.checklist[requirementName].status)

}

getReviewMessageWithTemplate(reviewResult: ReviewResult, autoReviewConfig) {
getReviewMessageWithTemplate(reviewResult: ReviewResult, autoReviewConfig: any) {
const mainTemplate = templates.find(template => template.courseId === autoReviewConfig?.course_id)

if (!mainTemplate) {
Expand Down
Loading

0 comments on commit 3cd40d3

Please sign in to comment.