From e5d67bcac3468fb185b7c435b6fc95be656474e8 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 1 Apr 2024 12:10:35 +0200 Subject: [PATCH] newsletter --- src/controllers/newsletterController.ts | 40 +++++++++++++++---------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/src/controllers/newsletterController.ts b/src/controllers/newsletterController.ts index 02d37b6..1dd60f5 100644 --- a/src/controllers/newsletterController.ts +++ b/src/controllers/newsletterController.ts @@ -48,8 +48,8 @@ export async function AddNewsletterParticipant(req: Request, res: Response) { newsletterLogger.info("AddNewsletterParticipant", email); rabbitmq.sendEmail(email, "confirmNewsletterParticipation", "de", { - confirmNewsletterParticipationLink: `${process.env.DASHBOARD_API_URL}/v1/newsletter/confirm/${newsletterId}`, - unsubscribeNewsletterParticipationLink: `${process.env.DASHBOARD_API_URL}/v1/newsletter/unsubscribe/${newsletterId}`, + confirmNewsletterParticipationLink: `${process.env.NEWSLETTER_WEBSITE_URL}confirm?n=${newsletterId}`, + unsubscribeNewsletterParticipationLink: `${process.env.NEWSLETTER_WEBSITE_URL}unsubscribe?n=${newsletterId}`, privacyPolicyLink: process.env.NEWSLETTER_PRIVACY_POLICY_URLS?.split(",")[0], }); @@ -93,22 +93,30 @@ export async function ConfirmNewsletterParticipation( return res.status(400).send({ err: "invalid request" }); } - newsletterParticipant.state = NEWSLETTER_STATE.CONFIRMED; - await newsletterParticipant.save(); + if (newsletterParticipant.state !== NEWSLETTER_STATE.CONFIRMED) { + newsletterParticipant.state = NEWSLETTER_STATE.CONFIRMED; + await newsletterParticipant.save(); - rabbitmq.sendEmail( - newsletterParticipant.email, - "confirmedNewsletterParticipation", - "de", - { - unsubscribeNewsletterParticipationLink: `${process.env.DASHBOARD_API_URL}/v1/newsletter/unsubscribe/${newsletterId}`, - privacyPolicyLink: process.env.NEWSLETTER_PRIVACY_POLICY_URLS?.split( - "," - ).find((url) => url.includes(newsletterParticipant.type)), - } - ); + rabbitmq.sendEmail( + newsletterParticipant.email, + "confirmedNewsletterParticipation", + "de", + { + unsubscribeNewsletterParticipationLink: `${process.env.NEWSLETTER_WEBSITE_URL}unsubscribe?n=${newsletterId}`, + privacyPolicyLink: process.env.NEWSLETTER_PRIVACY_POLICY_URLS?.split( + "," + ).find((url) => url.includes(newsletterParticipant.type)), + } + ); - newsletterLogger.info("ConfirmNewsletterParticipation", newsletterId); + newsletterLogger.info( + `ConfirmNewsletterParticipation newsletterId: ${newsletterId} email: ${newsletterParticipant.email} confirmed` + ); + } else { + newsletterLogger.warn( + `ConfirmNewsletterParticipation: newsletter id: ${newsletterId} email: ${newsletterParticipant.email} already confirmed` + ); + } return res.status(200).send({ status: "success" }); } catch (error) {