static async decrease (videoUUID: string, column: VideoJobInfoColumnType): Promise<number> {
const options = { type: QueryTypes.SELECT as QueryTypes.SELECT, bind: { videoUUID } }
- const [ { pendingMove } ] = await VideoJobInfoModel.sequelize.query<{ pendingMove: number }>(`
+ const result = await VideoJobInfoModel.sequelize.query<{ pendingMove: number }>(`
UPDATE
"videoJobInfo"
SET
"${column}";
`, options)
- return pendingMove
+ if (result.length === 0) return undefined
+
+ return result[0].pendingMove
+ }
+
+ static async abortAllTasks (videoUUID: string, column: VideoJobInfoColumnType): Promise<void> {
+ const options = { type: QueryTypes.UPDATE as QueryTypes.UPDATE, bind: { videoUUID } }
+
+ await VideoJobInfoModel.sequelize.query(`
+ UPDATE
+ "videoJobInfo"
+ SET
+ "${column}" = 0,
+ "updatedAt" = NOW()
+ FROM "video"
+ WHERE
+ "video"."id" = "videoJobInfo"."videoId" AND "video"."uuid" = $videoUUID
+ `, options)
}
}