X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo-playlist-element.ts;h=4e41608186265c2339f89e40b3ebe25b9e07a0ce;hb=0c9a83546687d2ae80b3f5299a8ee59d741f894f;hp=e6906cb19202c6b70b59c8386a86ae8d8e39adc5;hpb=5ec3cbdf22fc88ebe57f370fc0bc0e3df7453458;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video-playlist-element.ts b/server/models/video/video-playlist-element.ts index e6906cb19..4e4160818 100644 --- a/server/models/video/video-playlist-element.ts +++ b/server/models/video/video-playlist-element.ts @@ -23,6 +23,7 @@ import { MVideoPlaylistElementVideoUrlPlaylistPrivacy, MVideoPlaylistVideoThumbnail } from '@server/types/models/video/video-playlist-element' +import { AttributesOnly } from '@shared/typescript-utils' import { PlaylistElementObject } from '../../../shared/models/activitypub/objects/playlist-element-object' import { VideoPrivacy } from '../../../shared/models/videos' import { VideoPlaylistElement, VideoPlaylistElementType } from '../../../shared/models/videos/playlist/video-playlist-element.model' @@ -32,7 +33,6 @@ import { AccountModel } from '../account/account' import { getSort, throwIfNotValid } from '../utils' import { ForAPIOptions, ScopeNames as VideoScopeNames, VideoModel } from './video' import { VideoPlaylistModel } from './video-playlist' -import { AttributesOnly } from '@shared/core-utils' @Table({ tableName: 'videoPlaylistElement', @@ -208,22 +208,28 @@ export class VideoPlaylistElementModel extends Model { + return { + attributes: forCount + ? [] + : [ 'url' ], + offset: start, + limit: count, + order: getSort('position'), + where: { + videoPlaylistId + }, + transaction: t + } } - return VideoPlaylistElementModel - .findAndCountAll(query) - .then(({ rows, count }) => { - return { total: count, data: rows.map(e => e.url) } - }) + return Promise.all([ + VideoPlaylistElementModel.count(getQuery(true)), + VideoPlaylistElementModel.findAll(getQuery(false)) + ]).then(([ total, rows ]) => ({ + total, + data: rows.map(e => e.url) + })) } static loadFirstElementWithVideoThumbnail (videoPlaylistId: number): Promise { @@ -276,13 +282,12 @@ export class VideoPlaylistElementModel extends Model