From c93fd6e2d455ea4208f9e5ca6bfbd1c0e9fd1ad9 Mon Sep 17 00:00:00 2001 From: Raphael Kabo Date: Mon, 26 Feb 2024 12:09:46 +0000 Subject: refactor: allow Cypress to override config --- src/routes/magicLink.ts | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/routes/magicLink.ts') diff --git a/src/routes/magicLink.ts b/src/routes/magicLink.ts index 24f0667..499d0a4 100644 --- a/src/routes/magicLink.ts +++ b/src/routes/magicLink.ts @@ -1,17 +1,19 @@ import { Router, Request, Response } from "express"; -import getConfig, { frontendConfig } from "../lib/config.js"; +import { frontendConfig } from "../lib/config.js"; import { sendEmailFromTemplate } from "../lib/email.js"; import { generateMagicLinkToken } from "../util/generator.js"; import MagicLink from "../models/MagicLink.js"; +import { getConfigMiddleware } from "../lib/middleware.js"; const router = Router(); -const config = getConfig(); + +router.use(getConfigMiddleware); router.post("/magic-link/event/create", async (req: Request, res: Response) => { const { email } = req.body; if (!email) { res.render("createEventMagicLink", { - ...frontendConfig(), + ...frontendConfig(res), message: { type: "danger", text: "Please provide an email address.", @@ -19,14 +21,14 @@ router.post("/magic-link/event/create", async (req: Request, res: Response) => { }); return; } - const allowedEmails = config.general.creator_email_addresses; + const allowedEmails = res.locals.config?.general.creator_email_addresses; if (!allowedEmails?.length) { // No creator email addresses are configured, so skip the magic link check return res.redirect("/new"); } if (!allowedEmails.includes(email)) { res.render("createEventMagicLink", { - ...frontendConfig(), + ...frontendConfig(res), message: { type: "success", text: "Thanks! If this email address can create events, you should receive an email with a magic link.", @@ -52,14 +54,14 @@ router.post("/magic-link/event/create", async (req: Request, res: Response) => { "createEventMagicLink", { token, - siteName: config.general.site_name, - siteLogo: config.general.email_logo_url, - domain: config.general.domain, + siteName: res.locals.config?.general.site_name, + siteLogo: res.locals.config?.general.email_logo_url, + domain: res.locals.config?.general.domain, }, req, ); res.render("createEventMagicLink", { - ...frontendConfig(), + ...frontendConfig(res), message: { type: "success", text: "Thanks! If this email address can create events, you should receive an email with a magic link.", -- cgit v1.2.3