Skip to content

Commit 60ace7f

Browse files
authored
fix: ticket transfers emails for 9punto5 (#310)
1 parent 11f89b3 commit 60ace7f

File tree

3 files changed

+109
-45
lines changed

3 files changed

+109
-45
lines changed

emails/templates/tickets/ticket-transfer-received/9punto5.tsx

+16-8
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,35 @@ setDefaultOptions({ locale: es });
99

1010
type Props = {
1111
transferId: string;
12-
recipientName: string;
13-
senderName: string;
12+
recipient: {
13+
name: string;
14+
};
15+
sender: {
16+
name: string;
17+
};
1418
ticketType: "CONFERENCE" | "EXPERIENCE";
1519
transferMessage?: string | null;
1620
expirationDate: Date;
1721
};
1822

1923
export const TicketTransferReceived9punto5 = ({
2024
transferId,
21-
recipientName = "Juan",
22-
senderName = "Pedro",
23-
ticketType = "CONFERENCE",
24-
transferMessage = "Mensaje de regalo",
25+
recipient = {
26+
name: "Juan",
27+
},
28+
sender = {
29+
name: "Pedro",
30+
},
31+
ticketType,
32+
transferMessage,
2533
expirationDate,
2634
}: Props) => {
2735
return (
2836
<TicketTemplate9punto5>
29-
<Text>¡Hola {recipientName}!</Text>
37+
<Text>¡Hola {recipient.name}!</Text>
3038

3139
<Text>
32-
Tenemos una gran noticia para ti. <strong>{senderName}</strong> te ha
40+
Tenemos una gran noticia para ti. <strong>{sender.name}</strong> te ha
3341
enviado una entrada para:
3442
</Text>
3543

emails/templates/tickets/ticket-transfer-sent/9punto5.tsx

+20-12
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,36 @@ import { TicketTemplate9punto5 } from "emails/templates/helpers/9punto5";
88
setDefaultOptions({ locale: es });
99

1010
type Props = {
11-
recipientName: string;
12-
recipientEmail: string;
13-
senderName: string;
11+
recipient: {
12+
name: string;
13+
email: string;
14+
};
15+
sender: {
16+
name: string;
17+
};
1418
ticketType: "CONFERENCE" | "EXPERIENCE";
1519
transferMessage?: string | null;
1620
expirationDate: Date;
1721
};
1822

1923
export const TicketTransferSent9punto5 = ({
20-
recipientName = "Juan",
21-
recipientEmail = "[email protected]",
22-
senderName = "Pedro",
23-
ticketType = "CONFERENCE",
24-
transferMessage = "Mensaje de regalo",
24+
recipient = {
25+
name: "Juan",
26+
27+
},
28+
sender = {
29+
name: "Pedro",
30+
},
31+
ticketType,
32+
transferMessage,
2533
expirationDate,
2634
}: Props) => {
2735
return (
2836
<TicketTemplate9punto5>
29-
<Text>¡Hola {senderName}!</Text>
37+
<Text>¡Hola {sender.name}!</Text>
3038

3139
<Text>
32-
Tu entrada para {recipientName} ({recipientEmail}) ha sido enviada con
40+
Tu entrada para {recipient.name} ({recipient.email}) ha sido enviada con
3341
éxito. Aquí están los detalles:
3442
</Text>
3543

@@ -44,12 +52,12 @@ export const TicketTransferSent9punto5 = ({
4452
)}
4553

4654
<Text>
47-
Hemos notificado a {recipientName} y le hemos proporcionado un enlace
55+
Hemos notificado a {recipient.name} y le hemos proporcionado un enlace
4856
para confirmar su asistencia ingresando a https://9punto5.cl
4957
</Text>
5058

5159
<Text>
52-
{recipientName} tendrá hasta el{" "}
60+
{recipient.name} tendrá hasta el{" "}
5361
<strong>
5462
{format(expirationDate, "dd 'de' MMMM 'a las' HH:mm")} hs
5563
</strong>{" "}

workers/transactional_email_service/index.tsx

+73-25
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@ import {
1616
sendTransactionalHTMLEmail,
1717
} from "~/datasources/email/sendTransactionalHTMLEmail";
1818
import { createLogger } from "~/logging";
19-
import { ENV, CommunityInfo, EventInfo, UserTicketTransferInfo } from "~workers/transactional_email_service/types";
19+
import {
20+
ENV,
21+
CommunityInfo,
22+
EventInfo,
23+
UserTicketTransferInfo,
24+
} from "~workers/transactional_email_service/types";
2025

2126
import { defaultInfo } from "./helpers";
2227
import { EventInvitation } from "../../emails/templates/tickets/event-invitation";
@@ -27,7 +32,6 @@ import { WaitlistAccepted } from "../../emails/templates/tickets/waitlist-accept
2732
import { WaitlistRejected } from "../../emails/templates/tickets/waitlist-rejected";
2833
import { YouAreOnTheWaitlist } from "../../emails/templates/tickets/you-are-on-the-waitlist-confirmation";
2934

30-
3135
type ReceiverType = {
3236
name?: string;
3337
email: string;
@@ -403,56 +407,75 @@ export default class EmailService extends WorkerEntrypoint<ENV> {
403407
this.logger.info(`Sending transfer ticket notifications`, {
404408
userTicketTransferId: userTicketTransfer.id,
405409
recipientEmail: userTicketTransfer.recipientUser.email,
406-
senderEmail: userTicketTransfer.senderUser.email
410+
senderEmail: userTicketTransfer.senderUser.email,
407411
});
408-
const expirationDate = userTicketTransfer.expirationDate ?? add(new Date(), { weeks: 1 });
412+
const expirationDate =
413+
userTicketTransfer.expirationDate ?? add(new Date(), { weeks: 1 });
409414

410415
if (communityInfo.name === "9punto5") {
411416
const userTicket = userTicketTransfer.userTicket;
412417
const ticketTemplate = userTicket.ticketTemplate;
413418

414419
const ticketType = get9unto5TicketType(ticketTemplate.tags);
415420

416-
// Send confirmation email to transfer sender
421+
// Send confirmation email to recipient
417422
await sendTransactionalHTMLEmail(this.resend, this.logger, {
418423
htmlContent: render(
419424
<TicketTransferReceived9punto5
425+
recipient={{
426+
name: userTicketTransfer.recipientUser.name ?? "",
427+
}}
428+
sender={{
429+
name: userTicketTransfer.senderUser.name ?? "",
430+
}}
420431
transferId={userTicketTransfer.id}
421-
recipientName={userTicketTransfer.recipientUser.name ?? ""}
422-
senderName={userTicketTransfer.senderUser.name ?? ""}
423432
ticketType={ticketType}
424433
transferMessage={userTicketTransfer.transferMessage ?? ""}
425434
expirationDate={expirationDate}
426435
/>,
427436
),
428-
to: [{ name: userTicketTransfer.senderUser.name ?? "", email: userTicketTransfer.senderUser.email ?? "" }],
437+
to: [
438+
{
439+
name: userTicketTransfer.recipientUser.name ?? "",
440+
email: userTicketTransfer.recipientUser.email,
441+
},
442+
],
429443
from: defaultInfo.nuevopuntocinco.from,
430-
subject: `La entrada ${
431-
ticketType === "CONFERENCE" ? "CONFERENCIA" : "EXPERIENCIA"
432-
} 9.5 para ${userTicketTransfer.recipientUser.name ?? ""} ha sido enviada`,
444+
subject: `Te han enviado una entrada para 9punto5`,
433445
});
434-
446+
435447
// Send confirmation email to transfer sender
436448
await sendTransactionalHTMLEmail(this.resend, this.logger, {
437449
htmlContent: render(
438450
<TicketTransferSent9punto5
451+
recipient={{
452+
name: userTicketTransfer.recipientUser.name ?? "",
453+
email: userTicketTransfer.recipientUser.email,
454+
}}
455+
sender={{
456+
name: userTicketTransfer.senderUser.name ?? "",
457+
}}
439458
ticketType={ticketType}
440-
recipientName={userTicketTransfer.recipientUser.name ?? ""}
441-
senderName={userTicketTransfer.senderUser.name ?? ""}
442459
transferMessage={userTicketTransfer.transferMessage ?? ""}
443-
recipientEmail={userTicketTransfer.recipientUser.email}
444460
expirationDate={expirationDate}
445461
/>,
446462
),
447-
to: [{ name: userTicketTransfer.senderUser.name ?? "", email: userTicketTransfer.senderUser.email ?? "" }],
463+
to: [
464+
{
465+
name: userTicketTransfer.senderUser.name ?? "",
466+
email: userTicketTransfer.senderUser.email,
467+
},
468+
],
448469
from: defaultInfo.nuevopuntocinco.from,
449470
subject: `La entrada ${
450471
ticketType === "CONFERENCE" ? "CONFERENCIA" : "EXPERIENCIA"
451-
} 9.5 para ${userTicketTransfer.recipientUser.name ?? ""} ha sido enviada`,
472+
} 9.5 para ${
473+
userTicketTransfer.recipientUser.name ?? ""
474+
} ha sido enviada`,
452475
});
453476

454477
this.logger.info(`Transfer ticket notifications sent successfully`, {
455-
transferId: userTicketTransfer.id
478+
transferId: userTicketTransfer.id,
456479
});
457480
} else if (communityInfo.slug?.toLowerCase() === "jscl") {
458481
// Send email to transfer recipient
@@ -468,7 +491,15 @@ export default class EmailService extends WorkerEntrypoint<ENV> {
468491
expirationDate={expirationDate}
469492
/>,
470493
),
471-
to: [{ name: userTicketTransfer.recipientUser.name ?? userTicketTransfer.recipientUser.username ?? "", email: userTicketTransfer.recipientUser.email }],
494+
to: [
495+
{
496+
name:
497+
userTicketTransfer.recipientUser.name ??
498+
userTicketTransfer.recipientUser.username ??
499+
"",
500+
email: userTicketTransfer.recipientUser.email,
501+
},
502+
],
472503
from: defaultInfo.jscl.from,
473504
subject: `Te han enviado una entrada para ${eventInfo.name}`,
474505
});
@@ -486,9 +517,16 @@ export default class EmailService extends WorkerEntrypoint<ENV> {
486517
expirationDate={expirationDate}
487518
/>,
488519
),
489-
to: [{ name: userTicketTransfer.senderUser.name ?? "", email: userTicketTransfer.senderUser.email ?? "" }],
520+
to: [
521+
{
522+
name: userTicketTransfer.senderUser.name ?? "",
523+
email: userTicketTransfer.senderUser.email ?? "",
524+
},
525+
],
490526
from: defaultInfo.jscl.from,
491-
subject: `La entrada a ${eventInfo.name} para ${userTicketTransfer.recipientUser.name ?? ""} ha sido enviada`,
527+
subject: `La entrada a ${eventInfo.name} para ${
528+
userTicketTransfer.recipientUser.name ?? ""
529+
} ha sido enviada`,
492530
});
493531

494532
this.logger.info(`Transfer ticket notifications sent successfully`, {
@@ -532,12 +570,17 @@ export default class EmailService extends WorkerEntrypoint<ENV> {
532570
),
533571
to: [
534572
{
535-
name: userTicketTransfer.senderUser.name ?? userTicketTransfer.senderUser.username ?? "",
573+
name:
574+
userTicketTransfer.senderUser.name ??
575+
userTicketTransfer.senderUser.username ??
576+
"",
536577
email: userTicketTransfer.senderUser.email,
537578
},
538579
],
539580
from: defaultInfo.nuevopuntocinco.from,
540-
subject: `${userTicketTransfer.recipientUser.name ?? ""} aceptó tu entrada ${
581+
subject: `${
582+
userTicketTransfer.recipientUser.name ?? ""
583+
} aceptó tu entrada ${
541584
ticketType === "CONFERENCE" ? "CONFERENCIA" : "EXPERIENCIA"
542585
} 9.5`,
543586
});
@@ -554,12 +597,17 @@ export default class EmailService extends WorkerEntrypoint<ENV> {
554597
),
555598
to: [
556599
{
557-
name: userTicketTransfer.senderUser.name ?? userTicketTransfer.senderUser.username ?? "",
600+
name:
601+
userTicketTransfer.senderUser.name ??
602+
userTicketTransfer.senderUser.username ??
603+
"",
558604
email: userTicketTransfer.senderUser.email,
559605
},
560606
],
561607
from: defaultInfo.jscl.from,
562-
subject: `${userTicketTransfer.recipientUser.name ?? ""} aceptó tu entrada para ${eventInfo.name}`
608+
subject: `${
609+
userTicketTransfer.recipientUser.name ?? ""
610+
} aceptó tu entrada para ${eventInfo.name}`,
563611
});
564612
} else {
565613
throw new Error(`No community/event handler found`);

0 commit comments

Comments
 (0)