diff --git a/src/lib/server/notifications/handler.ts b/src/lib/server/notifications/handler.ts index 908bae19b90e4b434b7b3b1b470001b36e2897ea..830b6c6e53adc6555b6d1f4da6514946b911e8b5 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; + }); })); };