mirror of
https://github.com/matt-fidd/stratos.git
synced 2026-01-01 15:59:25 +00:00
Don't block main thread waiting for email to build and send
This commit is contained in:
30
lib/Test.js
30
lib/Test.js
@@ -173,23 +173,23 @@ class Test {
|
||||
mark
|
||||
);
|
||||
|
||||
const parents = await tr.student.getParents();
|
||||
const body = 'Your result has been added for ' +
|
||||
`the test "${this.template.name}" that you ` +
|
||||
`took on ${this.getDateString()}\n\n` +
|
||||
`You scored ${mark}/${this.template.maxMark} ` +
|
||||
`(${tr.percentage}%) which is a grade ` +
|
||||
`${tr.grade}`;
|
||||
|
||||
const email = new EmailBuilder()
|
||||
.addTo([ tr.student, ...parents ]
|
||||
.map(u => u.getEmail()))
|
||||
.setSubject('Stratos - Test result added')
|
||||
.setBody(
|
||||
'Your result has been added for ' +
|
||||
`the test "${this.template.name}" that you ` +
|
||||
`took on ${this.getDateString()}\n\n` +
|
||||
`You scored ${mark}/${this.template.maxMark} ` +
|
||||
`(${tr.percentage}%) which is a grade ` +
|
||||
`${tr.grade}`
|
||||
);
|
||||
tr.student.getParents().then(parents => {
|
||||
const email = new EmailBuilder()
|
||||
.addTo([ tr.student, ...parents ]
|
||||
.map(u => u.getEmail()))
|
||||
.setSubject('Stratos - Test result added')
|
||||
.setBody(body);
|
||||
|
||||
const emailer = new Emailer();
|
||||
await emailer.sendEmail(email);
|
||||
const emailer = new Emailer();
|
||||
emailer.sendEmail(email);
|
||||
});
|
||||
|
||||
return tr;
|
||||
}
|
||||
|
||||
@@ -114,16 +114,16 @@ class TestResult {
|
||||
`(${this.percentage}%) which is a grade ` +
|
||||
`${this.grade}`;
|
||||
|
||||
const parents = await this.student.getParents();
|
||||
this.student.getParents().then(parents => {
|
||||
const email = new EmailBuilder()
|
||||
.addTo([ this.student, ...parents ]
|
||||
.map(u => u.getEmail()))
|
||||
.setSubject('Stratos - Test result changed')
|
||||
.setBody(body);
|
||||
|
||||
const email = new EmailBuilder()
|
||||
.addTo([ this.student, ...parents ]
|
||||
.map(u => u.getEmail()))
|
||||
.setSubject('Stratos - Test result changed')
|
||||
.setBody(body);
|
||||
|
||||
const emailer = new Emailer();
|
||||
await emailer.sendEmail(email);
|
||||
const emailer = new Emailer();
|
||||
emailer.sendEmail(email);
|
||||
});
|
||||
}
|
||||
|
||||
get percentage() {
|
||||
|
||||
@@ -139,17 +139,18 @@ class TestTemplate {
|
||||
|
||||
const t = await new Test(this.#conn, id);
|
||||
|
||||
const email = (await EmailBuilder.generateFromClass(c))
|
||||
.setSubject('Stratos - New Test')
|
||||
.setBody(
|
||||
`New test added for class ${c.name}:\n` +
|
||||
`Test name: ${this.name}\n` +
|
||||
`Test date: ${t.getDateString()}\n` +
|
||||
`Maximum mark: ${this.maxMark}`
|
||||
);
|
||||
const body = `New test added for class ${c.name}:\n` +
|
||||
`Test name: ${this.name}\n` +
|
||||
`Test date: ${t.getDateString()}\n` +
|
||||
`Maximum mark: ${this.maxMark}`;
|
||||
|
||||
const emailer = new Emailer();
|
||||
await emailer.sendEmail(email);
|
||||
EmailBuilder.generateFromClass(c).then(email => {
|
||||
email.setSubject('Stratos - New Test')
|
||||
.setBody(body);
|
||||
|
||||
const emailer = new Emailer();
|
||||
emailer.sendEmail(email);
|
||||
});
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user