From 69a1df260ef61aa22c99bda59ad9ecafbee3b393 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Tue, 1 Sep 2020 01:11:02 +0300 Subject: [PATCH] Add graceful error handling for welcome message template parsing --- .../events/SendWelcomeMessageEvt.ts | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/backend/src/plugins/WelcomeMessage/events/SendWelcomeMessageEvt.ts b/backend/src/plugins/WelcomeMessage/events/SendWelcomeMessageEvt.ts index ee298c7f..abf5b7da 100644 --- a/backend/src/plugins/WelcomeMessage/events/SendWelcomeMessageEvt.ts +++ b/backend/src/plugins/WelcomeMessage/events/SendWelcomeMessageEvt.ts @@ -1,5 +1,5 @@ import { welcomeEvent } from "../types"; -import { renderTemplate } from "src/templateFormatter"; +import { renderTemplate, TemplateParseError } from "src/templateFormatter"; import { createChunkedMessage, stripObjectToScalars } from "src/utils"; import { LogType } from "src/data/LogType"; import { TextChannel } from "eris"; @@ -23,9 +23,22 @@ export const SendWelcomeMessageEvt = welcomeEvent({ pluginData.state.sentWelcomeMessages.add(member.id); - const formatted = await renderTemplate(config.message, { - member: stripObjectToScalars(member, ["user"]), - }); + let formatted; + + try { + formatted = await renderTemplate(config.message, { + member: stripObjectToScalars(member, ["user"]), + }); + } catch (e) { + if (e instanceof TemplateParseError) { + pluginData.state.logs.log(LogType.BOT_ALERT, { + body: `Error formatting welcome message: ${e.message}`, + }); + return; + } + + throw e; + } if (config.send_dm) { try {