1 import { logger } from '@server/helpers/logger'
2 import { CONFIG } from '@server/initializers/config'
3 import { WEBSERVER } from '@server/initializers/constants'
4 import { UserModel } from '@server/models/user/user'
5 import { UserNotificationModel } from '@server/models/user/user-notification'
6 import { MUserDefault, MUserWithNotificationSetting, MVideoFullLight, UserNotificationModelForApi } from '@server/types/models'
7 import { UserNotificationType } from '@shared/models'
8 import { AbstractNotification } from '../common/abstract-notification'
10 export class UnblacklistForOwner extends AbstractNotification <MVideoFullLight> {
11 private user: MUserDefault
14 this.user = await UserModel.loadByVideoId(this.payload.id)
18 logger.info('Notifying user %s that its video %s has been unblacklisted.', this.user.username, this.payload.url)
21 getSetting (user: MUserWithNotificationSetting) {
22 return user.NotificationSetting.blacklistOnMyVideo
26 if (!this.user) return []
31 createNotification (user: MUserWithNotificationSetting) {
32 const notification = UserNotificationModel.build<UserNotificationModelForApi>({
33 type: UserNotificationType.UNBLACKLIST_ON_MY_VIDEO,
35 videoId: this.payload.id
37 notification.Video = this.payload
42 createEmail (to: string) {
43 const video = this.payload
44 const videoUrl = WEBSERVER.URL + video.getWatchStaticPath()
48 subject: `Video ${video.name} unblacklisted`,
49 text: `Your video "${video.name}" (${videoUrl}) on ${CONFIG.INSTANCE.NAME} has been unblacklisted.`,
51 title: 'Your video was unblacklisted'