aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/models/video/video-playlist.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/models/video/video-playlist.ts')
-rw-r--r--server/models/video/video-playlist.ts30
1 files changed, 6 insertions, 24 deletions
diff --git a/server/models/video/video-playlist.ts b/server/models/video/video-playlist.ts
index caa79952d..630684a88 100644
--- a/server/models/video/video-playlist.ts
+++ b/server/models/video/video-playlist.ts
@@ -19,7 +19,7 @@ import {
19} from 'sequelize-typescript' 19} from 'sequelize-typescript'
20import { buildUUID, uuidToShort } from '@server/helpers/uuid' 20import { buildUUID, uuidToShort } from '@server/helpers/uuid'
21import { MAccountId, MChannelId } from '@server/types/models' 21import { MAccountId, MChannelId } from '@server/types/models'
22import { AttributesOnly, buildPlaylistEmbedPath, buildPlaylistWatchPath } from '@shared/core-utils' 22import { AttributesOnly, buildPlaylistEmbedPath, buildPlaylistWatchPath, pick } from '@shared/core-utils'
23import { ActivityIconObject } from '../../../shared/models/activitypub/objects' 23import { ActivityIconObject } from '../../../shared/models/activitypub/objects'
24import { PlaylistObject } from '../../../shared/models/activitypub/objects/playlist-object' 24import { PlaylistObject } from '../../../shared/models/activitypub/objects/playlist-object'
25import { VideoPlaylistPrivacy } from '../../../shared/models/videos/playlist/video-playlist-privacy.model' 25import { VideoPlaylistPrivacy } from '../../../shared/models/videos/playlist/video-playlist-privacy.model'
@@ -357,19 +357,10 @@ export class VideoPlaylistModel extends Model<Partial<AttributesOnly<VideoPlayli
357 }) 357 })
358 Thumbnail: ThumbnailModel 358 Thumbnail: ThumbnailModel
359 359
360 static listForApi (options: { 360 static listForApi (options: AvailableForListOptions & {
361 followerActorId: number
362 start: number 361 start: number
363 count: number 362 count: number
364 sort: string 363 sort: string
365 type?: VideoPlaylistType
366 accountId?: number
367 videoChannelId?: number
368 listMyPlaylists?: boolean
369 search?: string
370 host?: string
371 uuids?: string[]
372 withVideos?: boolean // false by default
373 }) { 364 }) {
374 const query = { 365 const query = {
375 offset: options.start, 366 offset: options.start,
@@ -382,14 +373,8 @@ export class VideoPlaylistModel extends Model<Partial<AttributesOnly<VideoPlayli
382 method: [ 373 method: [
383 ScopeNames.AVAILABLE_FOR_LIST, 374 ScopeNames.AVAILABLE_FOR_LIST,
384 { 375 {
385 type: options.type, 376 ...pick(options, [ 'type', 'followerActorId', 'accountId', 'videoChannelId', 'listMyPlaylists', 'search', 'host', 'uuids' ]),
386 followerActorId: options.followerActorId, 377
387 accountId: options.accountId,
388 videoChannelId: options.videoChannelId,
389 listMyPlaylists: options.listMyPlaylists,
390 search: options.search,
391 host: options.host,
392 uuids: options.uuids,
393 withVideos: options.withVideos || false 378 withVideos: options.withVideos || false
394 } as AvailableForListOptions 379 } as AvailableForListOptions
395 ] 380 ]
@@ -406,17 +391,14 @@ export class VideoPlaylistModel extends Model<Partial<AttributesOnly<VideoPlayli
406 }) 391 })
407 } 392 }
408 393
409 static searchForApi (options: { 394 static searchForApi (options: Pick<AvailableForListOptions, 'followerActorId' | 'search'| 'host'| 'uuids'> & {
410 followerActorId: number
411 start: number 395 start: number
412 count: number 396 count: number
413 sort: string 397 sort: string
414 search?: string
415 host?: string
416 uuids?: string[]
417 }) { 398 }) {
418 return VideoPlaylistModel.listForApi({ 399 return VideoPlaylistModel.listForApi({
419 ...options, 400 ...options,
401
420 type: VideoPlaylistType.REGULAR, 402 type: VideoPlaylistType.REGULAR,
421 listMyPlaylists: false, 403 listMyPlaylists: false,
422 withVideos: true 404 withVideos: true