From 483ed5d46f510d8d8b268f97f929bfb9e67ee909 Mon Sep 17 00:00:00 2001 From: matt Date: Thu, 21 Apr 2022 15:48:42 +0000 Subject: [PATCH] Notify when a test result is changed --- lib/TestResult.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/TestResult.js b/lib/TestResult.js index 19552f8..c81fbf8 100644 --- a/lib/TestResult.js +++ b/lib/TestResult.js @@ -2,6 +2,7 @@ const crypto = require('crypto'); +const { EmailBuilder, Emailer } = require('./Emailer'); const MySQLDate = require('./MySQLDate'); class TestResult { @@ -97,7 +98,29 @@ class TestResult { this.id ]); + let body = 'Your result has been changed for ' + + `the test "${this.test.template.name}" ` + + 'that you took on ' + + `${this.test.dateString}\n\n` + + `Your previous result was ${this.mark}/` + + `${this.test.template.maxMark} ` + + `(${this.percentage}%) which was a grade ` + + `${this.grade}\n\n`; + this.mark = mark; + + body += `Your new result is ${this.mark}/` + + `${this.test.template.maxMark} ` + + `(${this.percentage}%) which is a grade ` + + `${this.grade}`; + + const email = new EmailBuilder() + .addTo([ this.student.getEmail() ]) + .setSubject('Stratos - Test result changed') + .setBody(body); + + const emailer = new Emailer(); + await emailer.sendEmail(email); } get percentage() {