mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
* feat: add Microsoft Teams notification provider * feat: Add Microsoft Teams as notification provider * fix: Update database migration * fix: Remove duplicate file 0058 db migration * add Microsoft Teams notification provider E2E tests * fix: externalize e2e testings and profile name trim (#318) * fix: externalize e2e testings * fix: externalize e2e tests. * refactor: improve e2e workflow. * chore: upgrade workflow action version. * fix: createEnv by adding emptyStringAsUndefined (#317) * chore: release 1.18.2 --------- Co-authored-by: killian-larcher <killian.larcher@soluce-technologies.com> Co-authored-by: Charles GTE <charles.gauthereau@soluce-technologies.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix(layout): guard undefined user.name in avatar fallbacks (#320) * fix(layout): guard undefined user.name in avatar fallbacks * fix: AUTH_DEFAULT_USER as zod email --------- Co-authored-by: charles-gauthereau <charles.gauthereau@soluce-technologies.com> * fix: profile name trim --------- Co-authored-by: killian-larcher <killian.larcher@soluce-technologies.com> Co-authored-by: Charles GTE <charles.gauthereau@soluce-technologies.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Michael Kutý <6du1ro.n@gmail.com> Co-authored-by: charles-gauthereau <charles.gauthereau@soluce-technologies.com> * chore: release 1.18.3 * chore: Update README.md (#323) * chore: Update README.md added unraid link * chore: Update README.md fix markdown * chore: release 1.18.4 * fix: teams.ts with timeout --------- Co-authored-by: Killian Larcher <98161034+KillianLarcher@users.noreply.github.com> Co-authored-by: killian-larcher <killian.larcher@soluce-technologies.com> Co-authored-by: Charles GTE <charles.gauthereau@soluce-technologies.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Michael Kutý <6du1ro.n@gmail.com> Co-authored-by: charles-gauthereau <charles.gauthereau@soluce-technologies.com> Co-authored-by: Shawn M <84647313+hyperion02@users.noreply.github.com>
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
"use server"
|
|
import type {ProviderKind, EventPayload, DispatchResult} from '@/features/notifications/notifications.types';
|
|
import {sendSlack} from './slack';
|
|
import {sendSmtp} from './smtp';
|
|
import {sendDiscord} from "@/features/channel/notifications/discord";
|
|
import {sendTelegram} from "@/features/channel/notifications/telegram";
|
|
import {sendGotify} from "@/features/channel/notifications/gotify";
|
|
import {sendNtfy} from "@/features/channel/notifications/ntfy";
|
|
import {sendWebhook} from "@/features/channel/notifications/webhook";
|
|
import {sendNextcloud} from "@/features/channel/notifications/nextcloud";
|
|
import {sendTeams} from "@/features/channel/notifications/teams"
|
|
|
|
const handlers: Record<
|
|
ProviderKind,
|
|
(config: any, payload: EventPayload) => Promise<DispatchResult>
|
|
> = {
|
|
slack: sendSlack,
|
|
smtp: sendSmtp,
|
|
discord: sendDiscord,
|
|
telegram: sendTelegram,
|
|
gotify: sendGotify,
|
|
ntfy: sendNtfy,
|
|
webhook: sendWebhook,
|
|
nextcloud: sendNextcloud,
|
|
teams: sendTeams,
|
|
};
|
|
|
|
export async function dispatchViaProvider(
|
|
kind: ProviderKind,
|
|
config: any,
|
|
payload: EventPayload,
|
|
channelId: string
|
|
): Promise<DispatchResult> {
|
|
const handler = handlers[kind];
|
|
if (!handler) {
|
|
return {
|
|
success: false,
|
|
channelId,
|
|
provider: kind,
|
|
error: `Unsupported provider: ${kind}`,
|
|
};
|
|
}
|
|
|
|
try {
|
|
return await handler(config, payload);
|
|
} catch (err: any) {
|
|
return {
|
|
success: false,
|
|
channelId,
|
|
provider: kind,
|
|
error: err.message || 'Unknown error',
|
|
};
|
|
}
|
|
} |