X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo-playlist-element.ts;h=a2bd225a16f84cb8a45313748e5b84495376905c;hb=9c6ca37fc1512a99d420ea90707cebcd06cdc970;hp=d76149d1225f77e0981162008dbf6827644a550b;hpb=418d092afa81e2c8fe8ac6838fc4b5eb0af6a782;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video-playlist-element.ts b/server/models/video/video-playlist-element.ts index d76149d12..a2bd225a1 100644 --- a/server/models/video/video-playlist-element.ts +++ b/server/models/video/video-playlist-element.ts @@ -20,6 +20,7 @@ import { getSort, throwIfNotValid } from '../utils' import { isActivityPubUrlValid } from '../../helpers/custom-validators/activitypub/misc' import { CONSTRAINTS_FIELDS } from '../../initializers' import { PlaylistElementObject } from '../../../shared/models/activitypub/objects/playlist-element-object' +import * as validator from 'validator' @Table({ tableName: 'videoPlaylistElement', @@ -34,10 +35,6 @@ import { PlaylistElementObject } from '../../../shared/models/activitypub/object fields: [ 'videoPlaylistId', 'videoId' ], unique: true }, - { - fields: [ 'videoPlaylistId', 'position' ], - unique: true - }, { fields: [ 'url' ], unique: true @@ -143,7 +140,7 @@ export class VideoPlaylistElementModel extends Model return VideoPlaylistElementModel.findOne(query) } - static listUrlsOfForAP (videoPlaylistId: number, start: number, count: number) { + static listUrlsOfForAP (videoPlaylistId: number, start: number, count: number, t?: Sequelize.Transaction) { const query = { attributes: [ 'url' ], offset: start, @@ -151,7 +148,8 @@ export class VideoPlaylistElementModel extends Model order: getSort('position'), where: { videoPlaylistId - } + }, + transaction: t } return VideoPlaylistElementModel @@ -188,7 +186,8 @@ export class VideoPlaylistElementModel extends Model [Sequelize.Op.lte]: endPosition } }, - transaction + transaction, + validate: false // We use a literal to update the position } return VideoPlaylistElementModel.update({ position: Sequelize.literal(`${newPosition} + "position" - ${firstPosition}`) }, query)