diff options
Diffstat (limited to 'server/controllers/api/video-playlist.ts')
-rw-r--r-- | server/controllers/api/video-playlist.ts | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/server/controllers/api/video-playlist.ts b/server/controllers/api/video-playlist.ts index c7dfc583b..5b1601c4e 100644 --- a/server/controllers/api/video-playlist.ts +++ b/server/controllers/api/video-playlist.ts | |||
@@ -10,7 +10,6 @@ import { | |||
10 | setDefaultPagination, | 10 | setDefaultPagination, |
11 | setDefaultSort | 11 | setDefaultSort |
12 | } from '../../middlewares' | 12 | } from '../../middlewares' |
13 | import { VideoChannelModel } from '../../models/video/video-channel' | ||
14 | import { videoPlaylistsSortValidator } from '../../middlewares/validators' | 13 | import { videoPlaylistsSortValidator } from '../../middlewares/validators' |
15 | import { buildNSFWFilter, createReqFiles, isUserAbleToSearchRemoteURI } from '../../helpers/express-utils' | 14 | import { buildNSFWFilter, createReqFiles, isUserAbleToSearchRemoteURI } from '../../helpers/express-utils' |
16 | import { CONFIG, MIMETYPES, sequelizeTypescript, THUMBNAILS_SIZE, VIDEO_PLAYLIST_PRIVACIES } from '../../initializers' | 15 | import { CONFIG, MIMETYPES, sequelizeTypescript, THUMBNAILS_SIZE, VIDEO_PLAYLIST_PRIVACIES } from '../../initializers' |
@@ -31,7 +30,6 @@ import { VideoPlaylistCreate } from '../../../shared/models/videos/playlist/vide | |||
31 | import { VideoPlaylistPrivacy } from '../../../shared/models/videos/playlist/video-playlist-privacy.model' | 30 | import { VideoPlaylistPrivacy } from '../../../shared/models/videos/playlist/video-playlist-privacy.model' |
32 | import { processImage } from '../../helpers/image-utils' | 31 | import { processImage } from '../../helpers/image-utils' |
33 | import { join } from 'path' | 32 | import { join } from 'path' |
34 | import { UserModel } from '../../models/account/user' | ||
35 | import { sendCreateVideoPlaylist, sendDeleteVideoPlaylist, sendUpdateVideoPlaylist } from '../../lib/activitypub/send' | 33 | import { sendCreateVideoPlaylist, sendDeleteVideoPlaylist, sendUpdateVideoPlaylist } from '../../lib/activitypub/send' |
36 | import { getVideoPlaylistActivityPubUrl, getVideoPlaylistElementActivityPubUrl } from '../../lib/activitypub/url' | 34 | import { getVideoPlaylistActivityPubUrl, getVideoPlaylistElementActivityPubUrl } from '../../lib/activitypub/url' |
37 | import { VideoPlaylistUpdate } from '../../../shared/models/videos/playlist/video-playlist-update.model' | 35 | import { VideoPlaylistUpdate } from '../../../shared/models/videos/playlist/video-playlist-update.model' |
@@ -142,14 +140,14 @@ async function listVideoPlaylists (req: express.Request, res: express.Response) | |||
142 | } | 140 | } |
143 | 141 | ||
144 | function getVideoPlaylist (req: express.Request, res: express.Response) { | 142 | function getVideoPlaylist (req: express.Request, res: express.Response) { |
145 | const videoPlaylist = res.locals.videoPlaylist as VideoPlaylistModel | 143 | const videoPlaylist = res.locals.videoPlaylist |
146 | 144 | ||
147 | return res.json(videoPlaylist.toFormattedJSON()) | 145 | return res.json(videoPlaylist.toFormattedJSON()) |
148 | } | 146 | } |
149 | 147 | ||
150 | async function addVideoPlaylist (req: express.Request, res: express.Response) { | 148 | async function addVideoPlaylist (req: express.Request, res: express.Response) { |
151 | const videoPlaylistInfo: VideoPlaylistCreate = req.body | 149 | const videoPlaylistInfo: VideoPlaylistCreate = req.body |
152 | const user: UserModel = res.locals.oauth.token.User | 150 | const user = res.locals.oauth.token.User |
153 | 151 | ||
154 | const videoPlaylist = new VideoPlaylistModel({ | 152 | const videoPlaylist = new VideoPlaylistModel({ |
155 | name: videoPlaylistInfo.displayName, | 153 | name: videoPlaylistInfo.displayName, |
@@ -161,7 +159,7 @@ async function addVideoPlaylist (req: express.Request, res: express.Response) { | |||
161 | videoPlaylist.url = getVideoPlaylistActivityPubUrl(videoPlaylist) // We use the UUID, so set the URL after building the object | 159 | videoPlaylist.url = getVideoPlaylistActivityPubUrl(videoPlaylist) // We use the UUID, so set the URL after building the object |
162 | 160 | ||
163 | if (videoPlaylistInfo.videoChannelId) { | 161 | if (videoPlaylistInfo.videoChannelId) { |
164 | const videoChannel = res.locals.videoChannel as VideoChannelModel | 162 | const videoChannel = res.locals.videoChannel |
165 | 163 | ||
166 | videoPlaylist.videoChannelId = videoChannel.id | 164 | videoPlaylist.videoChannelId = videoChannel.id |
167 | videoPlaylist.VideoChannel = videoChannel | 165 | videoPlaylist.VideoChannel = videoChannel |
@@ -194,7 +192,7 @@ async function addVideoPlaylist (req: express.Request, res: express.Response) { | |||
194 | } | 192 | } |
195 | 193 | ||
196 | async function updateVideoPlaylist (req: express.Request, res: express.Response) { | 194 | async function updateVideoPlaylist (req: express.Request, res: express.Response) { |
197 | const videoPlaylistInstance = res.locals.videoPlaylist as VideoPlaylistModel | 195 | const videoPlaylistInstance = res.locals.videoPlaylist |
198 | const videoPlaylistFieldsSave = videoPlaylistInstance.toJSON() | 196 | const videoPlaylistFieldsSave = videoPlaylistInstance.toJSON() |
199 | const videoPlaylistInfoToUpdate = req.body as VideoPlaylistUpdate | 197 | const videoPlaylistInfoToUpdate = req.body as VideoPlaylistUpdate |
200 | const wasPrivatePlaylist = videoPlaylistInstance.privacy === VideoPlaylistPrivacy.PRIVATE | 198 | const wasPrivatePlaylist = videoPlaylistInstance.privacy === VideoPlaylistPrivacy.PRIVATE |
@@ -219,7 +217,7 @@ async function updateVideoPlaylist (req: express.Request, res: express.Response) | |||
219 | if (videoPlaylistInfoToUpdate.videoChannelId === null) { | 217 | if (videoPlaylistInfoToUpdate.videoChannelId === null) { |
220 | videoPlaylistInstance.videoChannelId = null | 218 | videoPlaylistInstance.videoChannelId = null |
221 | } else { | 219 | } else { |
222 | const videoChannel = res.locals.videoChannel as VideoChannelModel | 220 | const videoChannel = res.locals.videoChannel |
223 | 221 | ||
224 | videoPlaylistInstance.videoChannelId = videoChannel.id | 222 | videoPlaylistInstance.videoChannelId = videoChannel.id |
225 | videoPlaylistInstance.VideoChannel = videoChannel | 223 | videoPlaylistInstance.VideoChannel = videoChannel |
@@ -262,7 +260,7 @@ async function updateVideoPlaylist (req: express.Request, res: express.Response) | |||
262 | } | 260 | } |
263 | 261 | ||
264 | async function removeVideoPlaylist (req: express.Request, res: express.Response) { | 262 | async function removeVideoPlaylist (req: express.Request, res: express.Response) { |
265 | const videoPlaylistInstance: VideoPlaylistModel = res.locals.videoPlaylist | 263 | const videoPlaylistInstance = res.locals.videoPlaylist |
266 | 264 | ||
267 | await sequelizeTypescript.transaction(async t => { | 265 | await sequelizeTypescript.transaction(async t => { |
268 | await videoPlaylistInstance.destroy({ transaction: t }) | 266 | await videoPlaylistInstance.destroy({ transaction: t }) |
@@ -277,8 +275,8 @@ async function removeVideoPlaylist (req: express.Request, res: express.Response) | |||
277 | 275 | ||
278 | async function addVideoInPlaylist (req: express.Request, res: express.Response) { | 276 | async function addVideoInPlaylist (req: express.Request, res: express.Response) { |
279 | const body: VideoPlaylistElementCreate = req.body | 277 | const body: VideoPlaylistElementCreate = req.body |
280 | const videoPlaylist: VideoPlaylistModel = res.locals.videoPlaylist | 278 | const videoPlaylist = res.locals.videoPlaylist |
281 | const video: VideoModel = res.locals.video | 279 | const video = res.locals.video |
282 | 280 | ||
283 | const playlistElement: VideoPlaylistElementModel = await sequelizeTypescript.transaction(async t => { | 281 | const playlistElement: VideoPlaylistElementModel = await sequelizeTypescript.transaction(async t => { |
284 | const position = await VideoPlaylistElementModel.getNextPositionOf(videoPlaylist.id, t) | 282 | const position = await VideoPlaylistElementModel.getNextPositionOf(videoPlaylist.id, t) |
@@ -323,8 +321,8 @@ async function addVideoInPlaylist (req: express.Request, res: express.Response) | |||
323 | 321 | ||
324 | async function updateVideoPlaylistElement (req: express.Request, res: express.Response) { | 322 | async function updateVideoPlaylistElement (req: express.Request, res: express.Response) { |
325 | const body: VideoPlaylistElementUpdate = req.body | 323 | const body: VideoPlaylistElementUpdate = req.body |
326 | const videoPlaylist: VideoPlaylistModel = res.locals.videoPlaylist | 324 | const videoPlaylist = res.locals.videoPlaylist |
327 | const videoPlaylistElement: VideoPlaylistElementModel = res.locals.videoPlaylistElement | 325 | const videoPlaylistElement = res.locals.videoPlaylistElement |
328 | 326 | ||
329 | const playlistElement: VideoPlaylistElementModel = await sequelizeTypescript.transaction(async t => { | 327 | const playlistElement: VideoPlaylistElementModel = await sequelizeTypescript.transaction(async t => { |
330 | if (body.startTimestamp !== undefined) videoPlaylistElement.startTimestamp = body.startTimestamp | 328 | if (body.startTimestamp !== undefined) videoPlaylistElement.startTimestamp = body.startTimestamp |
@@ -346,8 +344,8 @@ async function updateVideoPlaylistElement (req: express.Request, res: express.Re | |||
346 | } | 344 | } |
347 | 345 | ||
348 | async function removeVideoFromPlaylist (req: express.Request, res: express.Response) { | 346 | async function removeVideoFromPlaylist (req: express.Request, res: express.Response) { |
349 | const videoPlaylistElement: VideoPlaylistElementModel = res.locals.videoPlaylistElement | 347 | const videoPlaylistElement = res.locals.videoPlaylistElement |
350 | const videoPlaylist: VideoPlaylistModel = res.locals.videoPlaylist | 348 | const videoPlaylist = res.locals.videoPlaylist |
351 | const positionToDelete = videoPlaylistElement.position | 349 | const positionToDelete = videoPlaylistElement.position |
352 | 350 | ||
353 | await sequelizeTypescript.transaction(async t => { | 351 | await sequelizeTypescript.transaction(async t => { |
@@ -368,7 +366,7 @@ async function removeVideoFromPlaylist (req: express.Request, res: express.Respo | |||
368 | } | 366 | } |
369 | 367 | ||
370 | async function reorderVideosPlaylist (req: express.Request, res: express.Response) { | 368 | async function reorderVideosPlaylist (req: express.Request, res: express.Response) { |
371 | const videoPlaylist: VideoPlaylistModel = res.locals.videoPlaylist | 369 | const videoPlaylist = res.locals.videoPlaylist |
372 | const body: VideoPlaylistReorder = req.body | 370 | const body: VideoPlaylistReorder = req.body |
373 | 371 | ||
374 | const start: number = body.startPosition | 372 | const start: number = body.startPosition |
@@ -416,7 +414,7 @@ async function reorderVideosPlaylist (req: express.Request, res: express.Respons | |||
416 | } | 414 | } |
417 | 415 | ||
418 | async function getVideoPlaylistVideos (req: express.Request, res: express.Response) { | 416 | async function getVideoPlaylistVideos (req: express.Request, res: express.Response) { |
419 | const videoPlaylistInstance: VideoPlaylistModel = res.locals.videoPlaylist | 417 | const videoPlaylistInstance = res.locals.videoPlaylist |
420 | const followerActorId = isUserAbleToSearchRemoteURI(res) ? null : undefined | 418 | const followerActorId = isUserAbleToSearchRemoteURI(res) ? null : undefined |
421 | 419 | ||
422 | const resultList = await VideoModel.listForApi({ | 420 | const resultList = await VideoModel.listForApi({ |