Я использовал это ожидание, чтобы отправить электронное письмо рецензенту после отправки формы, но кажется, что что-то не работает, хотя console.log запрашивает метод
test.services.ts
async send(
candidateId: number,
entity: TestDto,
email?: { title: string; content: string },
) {
return db.sequelize.transaction(async transaction => {
const instance = await db.Candidate.findById(candidateId, {
rejectOnEmpty: true,
});
const testInstance = await instance.createTest(entity, {
fields: ['name', 'reviewerId', 'candidateId'],
});
const reviewerRole = await db.Role.findOne({
where: { name: 'test-reviewer' },
});
await db.EmployeeHasRole.bulkCreate(
[{ employeeId: entity.reviewerId, roleId: reviewerRole.id }],
{
updateOnDuplicate: ['roleId', 'employeeId'],
},
);
// Test value
email = {
title: 'hihi',
content: 'hehehe'
}
if(email) { // email is undefined**
console.log('begin');
const reviewer = await testInstance.getReviewer(); // Get reviewer information
this.emailService.sendEmail({
receiver: reviewer.email,
content: email.content,
subject: email.title,
}).then(() => console.log('done done'), (err) => console.log(err, 'not done')); // Prompt done done -> work
}
return testInstance;
});
}
В первый раз электронная почта не определена, поэтому я назначил ей тестовое значение, я даже изменил reviewer.email на свою электронную почту'xxxxx@gmail.com'
test.controller.ts
@Post()
@Permission('arrange-interview:candidate/interview')
send(
@Param('candidateId', new ParseIntPipe()) candidateId: number,
@Body(new ValidationPipe({ transform: true, whitelist: true }))
entity: TestDto,
@Body('email') email: { title: string; content: string },
) {
return this.testService.send(candidateId, entity, email);
}