diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/controllers/api/videos/index.ts | 4 | ||||
-rw-r--r-- | server/middlewares/validators/videos.ts | 6 | ||||
-rw-r--r-- | server/models/video/schedule-video-update.ts | 11 |
3 files changed, 20 insertions, 1 deletions
diff --git a/server/controllers/api/videos/index.ts b/server/controllers/api/videos/index.ts index 79ca4699f..ca800a9a8 100644 --- a/server/controllers/api/videos/index.ts +++ b/server/controllers/api/videos/index.ts | |||
@@ -342,10 +342,12 @@ async function updateVideo (req: express.Request, res: express.Response) { | |||
342 | updateAt: videoInfoToUpdate.scheduleUpdate.updateAt, | 342 | updateAt: videoInfoToUpdate.scheduleUpdate.updateAt, |
343 | privacy: videoInfoToUpdate.scheduleUpdate.privacy || null | 343 | privacy: videoInfoToUpdate.scheduleUpdate.privacy || null |
344 | }, { transaction: t }) | 344 | }, { transaction: t }) |
345 | } else if (videoInfoToUpdate.scheduleUpdate === null) { | ||
346 | await ScheduleVideoUpdateModel.deleteByVideoId(videoInstanceUpdated.id, t) | ||
345 | } | 347 | } |
346 | 348 | ||
347 | const isNewVideo = wasPrivateVideo && videoInstanceUpdated.privacy !== VideoPrivacy.PRIVATE | 349 | const isNewVideo = wasPrivateVideo && videoInstanceUpdated.privacy !== VideoPrivacy.PRIVATE |
348 | await federateVideoIfNeeded(videoInstanceUpdated, isNewVideo) | 350 | await federateVideoIfNeeded(videoInstanceUpdated, isNewVideo, t) |
349 | }) | 351 | }) |
350 | 352 | ||
351 | logger.info('Video with name %s and uuid %s updated.', videoInstance.name, videoInstance.uuid) | 353 | logger.info('Video with name %s and uuid %s updated.', videoInstance.name, videoInstance.uuid) |
diff --git a/server/middlewares/validators/videos.ts b/server/middlewares/validators/videos.ts index da17b4a68..5595edf17 100644 --- a/server/middlewares/validators/videos.ts +++ b/server/middlewares/validators/videos.ts | |||
@@ -94,6 +94,9 @@ const videosAddValidator = [ | |||
94 | body('channelId') | 94 | body('channelId') |
95 | .toInt() | 95 | .toInt() |
96 | .custom(isIdValid).withMessage('Should have correct video channel id'), | 96 | .custom(isIdValid).withMessage('Should have correct video channel id'), |
97 | body('scheduleUpdate') | ||
98 | .optional() | ||
99 | .customSanitizer(toValueOrNull), | ||
97 | body('scheduleUpdate.updateAt') | 100 | body('scheduleUpdate.updateAt') |
98 | .optional() | 101 | .optional() |
99 | .custom(isDateValid).withMessage('Should have a valid schedule update date'), | 102 | .custom(isDateValid).withMessage('Should have a valid schedule update date'), |
@@ -199,6 +202,9 @@ const videosUpdateValidator = [ | |||
199 | .optional() | 202 | .optional() |
200 | .toInt() | 203 | .toInt() |
201 | .custom(isIdValid).withMessage('Should have correct video channel id'), | 204 | .custom(isIdValid).withMessage('Should have correct video channel id'), |
205 | body('scheduleUpdate') | ||
206 | .optional() | ||
207 | .customSanitizer(toValueOrNull), | ||
202 | body('scheduleUpdate.updateAt') | 208 | body('scheduleUpdate.updateAt') |
203 | .optional() | 209 | .optional() |
204 | .custom(isDateValid).withMessage('Should have a valid schedule update date'), | 210 | .custom(isDateValid).withMessage('Should have a valid schedule update date'), |
diff --git a/server/models/video/schedule-video-update.ts b/server/models/video/schedule-video-update.ts index 3cf5f6c99..1e56562e1 100644 --- a/server/models/video/schedule-video-update.ts +++ b/server/models/video/schedule-video-update.ts | |||
@@ -83,6 +83,17 @@ export class ScheduleVideoUpdateModel extends Model<ScheduleVideoUpdateModel> { | |||
83 | return ScheduleVideoUpdateModel.findAll(query) | 83 | return ScheduleVideoUpdateModel.findAll(query) |
84 | } | 84 | } |
85 | 85 | ||
86 | static deleteByVideoId (videoId: number, t: Transaction) { | ||
87 | const query = { | ||
88 | where: { | ||
89 | videoId | ||
90 | }, | ||
91 | transaction: t | ||
92 | } | ||
93 | |||
94 | return ScheduleVideoUpdateModel.destroy(query) | ||
95 | } | ||
96 | |||
86 | toFormattedJSON () { | 97 | toFormattedJSON () { |
87 | return { | 98 | return { |
88 | updateAt: this.updateAt, | 99 | updateAt: this.updateAt, |