️ Make submitting a participant a bit faster

Send multiple emails in parallel rather than sequentially.
This commit is contained in:
Luke Vella 2023-03-07 08:09:11 +00:00
parent 899c890b09
commit e06c55c131
2 changed files with 23 additions and 19 deletions

View file

@ -88,7 +88,7 @@ export const participants = router({
});
const { poll, ...participant } = res;
const emailsToSend: Promise<void>[] = [];
if (email) {
const token = await createToken(
{ userId: user.id },
@ -97,23 +97,29 @@ export const participants = router({
},
);
await sendEmail("NewParticipantConfirmationEmail", {
to: email,
subject: `Your response for ${poll.title} has been received`,
props: {
name,
title: poll.title,
editSubmissionUrl: absoluteUrl(
`/p/${poll.participantUrlId}?token=${token}`,
),
},
});
emailsToSend.push(
sendEmail("NewParticipantConfirmationEmail", {
to: email,
subject: `Response submitted: ${poll.title}`,
props: {
name,
title: poll.title,
editSubmissionUrl: absoluteUrl(
`/p/${poll.participantUrlId}?token=${token}`,
),
},
}),
);
}
await sendNotification(pollId, {
type: "newParticipant",
participantName: name,
});
emailsToSend.push(
sendNotification(pollId, {
type: "newParticipant",
participantName: name,
}),
);
await Promise.all(emailsToSend);
return participant;
}),

View file

@ -76,9 +76,7 @@ test.describe.parallel(() => {
wait: 5000,
});
expect(email.headers.subject).toBe(
"Your response for Lunch Meeting has been received",
);
expect(email.headers.subject).toBe("Response submitted: Lunch Meeting");
const $ = load(email.html);
const href = $("#editSubmissionUrl").attr("href");