Fix removing scheduled update
This commit is contained in:
parent
fc11a44ec9
commit
e94fc29706
5 changed files with 25 additions and 3 deletions
|
@ -55,7 +55,7 @@ export class VideoEdit implements VideoUpdate {
|
||||||
})
|
})
|
||||||
|
|
||||||
// If schedule publication, the video is private and will be changed to public privacy
|
// If schedule publication, the video is private and will be changed to public privacy
|
||||||
if (values['schedulePublicationAt']) {
|
if (parseInt(values['privacy'], 10) === VideoEdit.SPECIAL_SCHEDULED_PRIVACY) {
|
||||||
const updateAt = (values['schedulePublicationAt'] as Date)
|
const updateAt = (values['schedulePublicationAt'] as Date)
|
||||||
updateAt.setSeconds(0)
|
updateAt.setSeconds(0)
|
||||||
|
|
||||||
|
@ -64,6 +64,8 @@ export class VideoEdit implements VideoUpdate {
|
||||||
updateAt: updateAt.toISOString(),
|
updateAt: updateAt.toISOString(),
|
||||||
privacy: VideoPrivacy.PUBLIC
|
privacy: VideoPrivacy.PUBLIC
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
this.scheduleUpdate = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,7 @@ export class VideoService {
|
||||||
const category = video.category || null
|
const category = video.category || null
|
||||||
const description = video.description || null
|
const description = video.description || null
|
||||||
const support = video.support || null
|
const support = video.support || null
|
||||||
|
const scheduleUpdate = video.scheduleUpdate || null
|
||||||
|
|
||||||
const body: VideoUpdate = {
|
const body: VideoUpdate = {
|
||||||
name: video.name,
|
name: video.name,
|
||||||
|
@ -84,7 +85,7 @@ export class VideoService {
|
||||||
commentsEnabled: video.commentsEnabled,
|
commentsEnabled: video.commentsEnabled,
|
||||||
thumbnailfile: video.thumbnailfile,
|
thumbnailfile: video.thumbnailfile,
|
||||||
previewfile: video.previewfile,
|
previewfile: video.previewfile,
|
||||||
scheduleUpdate: video.scheduleUpdate || undefined
|
scheduleUpdate
|
||||||
}
|
}
|
||||||
|
|
||||||
const data = objectToFormData(body)
|
const data = objectToFormData(body)
|
||||||
|
|
|
@ -342,10 +342,12 @@ async function updateVideo (req: express.Request, res: express.Response) {
|
||||||
updateAt: videoInfoToUpdate.scheduleUpdate.updateAt,
|
updateAt: videoInfoToUpdate.scheduleUpdate.updateAt,
|
||||||
privacy: videoInfoToUpdate.scheduleUpdate.privacy || null
|
privacy: videoInfoToUpdate.scheduleUpdate.privacy || null
|
||||||
}, { transaction: t })
|
}, { transaction: t })
|
||||||
|
} else if (videoInfoToUpdate.scheduleUpdate === null) {
|
||||||
|
await ScheduleVideoUpdateModel.deleteByVideoId(videoInstanceUpdated.id, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
const isNewVideo = wasPrivateVideo && videoInstanceUpdated.privacy !== VideoPrivacy.PRIVATE
|
const isNewVideo = wasPrivateVideo && videoInstanceUpdated.privacy !== VideoPrivacy.PRIVATE
|
||||||
await federateVideoIfNeeded(videoInstanceUpdated, isNewVideo)
|
await federateVideoIfNeeded(videoInstanceUpdated, isNewVideo, t)
|
||||||
})
|
})
|
||||||
|
|
||||||
logger.info('Video with name %s and uuid %s updated.', videoInstance.name, videoInstance.uuid)
|
logger.info('Video with name %s and uuid %s updated.', videoInstance.name, videoInstance.uuid)
|
||||||
|
|
|
@ -94,6 +94,9 @@ const videosAddValidator = [
|
||||||
body('channelId')
|
body('channelId')
|
||||||
.toInt()
|
.toInt()
|
||||||
.custom(isIdValid).withMessage('Should have correct video channel id'),
|
.custom(isIdValid).withMessage('Should have correct video channel id'),
|
||||||
|
body('scheduleUpdate')
|
||||||
|
.optional()
|
||||||
|
.customSanitizer(toValueOrNull),
|
||||||
body('scheduleUpdate.updateAt')
|
body('scheduleUpdate.updateAt')
|
||||||
.optional()
|
.optional()
|
||||||
.custom(isDateValid).withMessage('Should have a valid schedule update date'),
|
.custom(isDateValid).withMessage('Should have a valid schedule update date'),
|
||||||
|
@ -199,6 +202,9 @@ const videosUpdateValidator = [
|
||||||
.optional()
|
.optional()
|
||||||
.toInt()
|
.toInt()
|
||||||
.custom(isIdValid).withMessage('Should have correct video channel id'),
|
.custom(isIdValid).withMessage('Should have correct video channel id'),
|
||||||
|
body('scheduleUpdate')
|
||||||
|
.optional()
|
||||||
|
.customSanitizer(toValueOrNull),
|
||||||
body('scheduleUpdate.updateAt')
|
body('scheduleUpdate.updateAt')
|
||||||
.optional()
|
.optional()
|
||||||
.custom(isDateValid).withMessage('Should have a valid schedule update date'),
|
.custom(isDateValid).withMessage('Should have a valid schedule update date'),
|
||||||
|
|
|
@ -83,6 +83,17 @@ export class ScheduleVideoUpdateModel extends Model<ScheduleVideoUpdateModel> {
|
||||||
return ScheduleVideoUpdateModel.findAll(query)
|
return ScheduleVideoUpdateModel.findAll(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static deleteByVideoId (videoId: number, t: Transaction) {
|
||||||
|
const query = {
|
||||||
|
where: {
|
||||||
|
videoId
|
||||||
|
},
|
||||||
|
transaction: t
|
||||||
|
}
|
||||||
|
|
||||||
|
return ScheduleVideoUpdateModel.destroy(query)
|
||||||
|
}
|
||||||
|
|
||||||
toFormattedJSON () {
|
toFormattedJSON () {
|
||||||
return {
|
return {
|
||||||
updateAt: this.updateAt,
|
updateAt: this.updateAt,
|
||||||
|
|
Loading…
Reference in a new issue