From a8a17443c2d070d2d23920ffff7e4a43c905698c Mon Sep 17 00:00:00 2001 From: Gavin Mogan Date: Wed, 23 Apr 2025 17:27:55 -0700 Subject: Refactor for everywhere to use sendEmailFromTemplate everywhere * Created a singleton to house handlebars so req doesn't need to be passed everywhere (should make unit testing easier later) * Subjectline for sendgrid and nodemailer are both always prefixed in sendEmail() * removed prefix subjectline from all other email places * added a couple if (!event) { return 404 } to help make typescript happy * some minor eslint auto fixes (looks like let => const where it can) --- src/routes/group.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src/routes/group.ts') diff --git a/src/routes/group.ts b/src/routes/group.ts index 9f4105c..c63413e 100644 --- a/src/routes/group.ts +++ b/src/routes/group.ts @@ -101,11 +101,7 @@ router.post( { eventGroupID: eventGroup.id, editToken: eventGroup.editToken, - siteName: res.locals.config?.general.site_name, - siteLogo: res.locals.config?.general.email_logo_url, - domain: res.locals.config?.general.domain, }, - req, ); } @@ -182,7 +178,7 @@ router.put( } // Token matches // If there is a new image, upload that first - let eventGroupID = req.params.eventGroupID; + const eventGroupID = req.params.eventGroupID; let eventGroupImageFilename = eventGroup.image; if (req.file?.buffer) { Jimp.read(req.file.buffer) -- cgit v1.2.3 From 14041a319cace03cfc23c0a919ed81fb141f88ce Mon Sep 17 00:00:00 2001 From: Gavin Mogan Date: Fri, 25 Apr 2025 21:43:39 -0700 Subject: Refactor to have email service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move hbsInstance back to app * Add email and hbs to req so typescript 🎉🎉🎉 * Init Email and config once --- src/routes/group.ts | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'src/routes/group.ts') diff --git a/src/routes/group.ts b/src/routes/group.ts index c63413e..cc53976 100644 --- a/src/routes/group.ts +++ b/src/routes/group.ts @@ -5,7 +5,6 @@ import { validateGroupData } from "../util/validation.js"; import Jimp from "jimp"; import { addToLog } from "../helpers.js"; import EventGroup from "../models/EventGroup.js"; -import { sendEmailFromTemplate } from "../lib/email.js"; import { marked } from "marked"; import { renderPlain } from "../util/markdown.js"; import { checkMagicLink, getConfigMiddleware } from "../lib/middleware.js"; @@ -92,17 +91,16 @@ router.post( ); // Send email with edit link - if (groupData.creatorEmail && req.app.locals.sendEmails) { - sendEmailFromTemplate( - groupData.creatorEmail, - "", - `${eventGroup.name}`, - "createEventGroup", - { + if (groupData.creatorEmail) { + req.emailService.sendEmailFromTemplate({ + to: groupData.creatorEmail, + subject: eventGroup.name, + templateName: "createEventGroup", + templateData: { eventGroupID: eventGroup.id, editToken: eventGroup.editToken, }, - ); + }); } res.status(200).json({ @@ -224,9 +222,9 @@ router.put( "editEventGroup", "error", "Attempt to edit event group " + - req.params.eventGroupID + - " failed with error: " + - err, + req.params.eventGroupID + + " failed with error: " + + err, ); return res.status(500).json({ errors: [ -- cgit v1.2.3