diff options
Diffstat (limited to 'server/lib/notifier/shared/common')
-rw-r--r-- | server/lib/notifier/shared/common/abstract-notification.ts | 23 | ||||
-rw-r--r-- | server/lib/notifier/shared/common/index.ts | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/server/lib/notifier/shared/common/abstract-notification.ts b/server/lib/notifier/shared/common/abstract-notification.ts new file mode 100644 index 000000000..53e2e02d5 --- /dev/null +++ b/server/lib/notifier/shared/common/abstract-notification.ts | |||
@@ -0,0 +1,23 @@ | |||
1 | import { MUserWithNotificationSetting, UserNotificationModelForApi } from '@server/types/models' | ||
2 | import { EmailPayload, UserNotificationSettingValue } from '@shared/models' | ||
3 | |||
4 | export abstract class AbstractNotification <T, U = MUserWithNotificationSetting> { | ||
5 | |||
6 | constructor (protected readonly payload: T) { | ||
7 | |||
8 | } | ||
9 | |||
10 | abstract prepare (): Promise<void> | ||
11 | abstract log (): void | ||
12 | |||
13 | abstract getSetting (user: U): UserNotificationSettingValue | ||
14 | abstract getTargetUsers (): U[] | ||
15 | |||
16 | abstract createNotification (user: U): Promise<UserNotificationModelForApi> | ||
17 | abstract createEmail (to: string): EmailPayload | Promise<EmailPayload> | ||
18 | |||
19 | isDisabled (): boolean | Promise<boolean> { | ||
20 | return false | ||
21 | } | ||
22 | |||
23 | } | ||
diff --git a/server/lib/notifier/shared/common/index.ts b/server/lib/notifier/shared/common/index.ts new file mode 100644 index 000000000..0b2570278 --- /dev/null +++ b/server/lib/notifier/shared/common/index.ts | |||
@@ -0,0 +1 @@ | |||
export * from './abstract-notification' | |||