From 7f95231dd7daad4ee047bd4e62116ea3174c773b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aaron=20D=C3=B6tsch?= <aaron@fsmpi.rwth-aachen.de> Date: Mon, 7 Aug 2023 21:26:11 +0200 Subject: [PATCH] Simplify notification handler --- src/lib/server/notifications/handler.ts | 45 +++++++++---------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/src/lib/server/notifications/handler.ts b/src/lib/server/notifications/handler.ts index 908bae1..830b6c6 100644 --- a/src/lib/server/notifications/handler.ts +++ b/src/lib/server/notifications/handler.ts @@ -15,35 +15,22 @@ export async function sendNotification<T extends PossibleNotificationType>(user: notificationChannels = await getNotificationChannels(userId, type.key); } return Promise.all(notificationChannels.map(channel => { - switch(channel.channelType){ - case ChannelType.EMAIL.key: { - return ChannelType.EMAIL.handler(channel.recipient, type, data) - .catch(err => { - return { - status: "error", - channel, - error: err - } as HandlerReturnError; - }); - } - case ChannelType.WEBHOOK.key: { - return ChannelType.WEBHOOK.handler(channel.recipient, type, data) - .catch(err => { - return { - status: "error", - channel, - error: err - } as HandlerReturnError; - }); - } - default: { - console.error(`Unknown channel type`, channel.channelType); - return { - status: "ignored", - channel - } as HandlerReturnIgnored; - } - }; + const channelType = Object.values(ChannelType).find(type => type.key === channel.channelType); + if(!channelType){ + console.error(`Unknown channel type`, channel.channelType); + return { + status: "ignored", + channel + } as HandlerReturnIgnored; + } + return channelType.handler(channel.recipient, type, data) + .catch(err => { + return { + status: "error", + channel, + error: err + } as HandlerReturnError; + }); })); }; -- GitLab