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

View file

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