Init commit
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import { EmailPayload, UserNotificationSettingValueType } from '@peertube/peertube-models'
|
||||
import { MUserWithNotificationSetting, UserNotificationModelForApi } from '@server/types/models/index.js'
|
||||
|
||||
export abstract class AbstractNotification<T, U = MUserWithNotificationSetting> {
|
||||
constructor (protected readonly payload: T) {
|
||||
}
|
||||
|
||||
abstract prepare (): Promise<void>
|
||||
abstract log (): void
|
||||
|
||||
abstract getSetting (user: U): UserNotificationSettingValueType
|
||||
abstract getTargetUsers (): U[]
|
||||
|
||||
abstract createNotification (user: U): UserNotificationModelForApi
|
||||
abstract createEmail (to: U): EmailPayload | Promise<EmailPayload>
|
||||
|
||||
isDisabled (): boolean | Promise<boolean> {
|
||||
return false
|
||||
}
|
||||
}
|
||||
1
server/core/lib/notifier/shared/common/index.ts
Normal file
1
server/core/lib/notifier/shared/common/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './abstract-notification.js'
|
||||
Reference in New Issue
Block a user