]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/api/videos/index.ts
Merge branch 'release/4.0.0' into develop
[github/Chocobozzz/PeerTube.git] / server / controllers / api / videos / index.ts
index 72b382595865356697030c6421d97977e6100e39..61a030ba144e18835557279dc05678f50dafbedc 100644 (file)
@@ -1,5 +1,4 @@
 import express from 'express'
-import toInt from 'validator/lib/toInt'
 import { pickCommonVideoQuery } from '@server/helpers/query'
 import { doJSONRequest } from '@server/helpers/requests'
 import { VideoViews } from '@server/lib/video-views'
@@ -27,21 +26,21 @@ import {
   paginationValidator,
   setDefaultPagination,
   setDefaultVideosSort,
-  videoFileMetadataGetValidator,
   videosCustomGetValidator,
   videosGetValidator,
   videosRemoveValidator,
   videosSortValidator
 } from '../../../middlewares'
 import { VideoModel } from '../../../models/video/video'
-import { VideoFileModel } from '../../../models/video/video-file'
 import { blacklistRouter } from './blacklist'
 import { videoCaptionsRouter } from './captions'
 import { videoCommentRouter } from './comment'
+import { filesRouter } from './files'
 import { videoImportsRouter } from './import'
 import { liveRouter } from './live'
 import { ownershipVideoRouter } from './ownership'
 import { rateVideoRouter } from './rate'
+import { transcodingRouter } from './transcoding'
 import { updateRouter } from './update'
 import { uploadRouter } from './upload'
 import { watchingRouter } from './watching'
@@ -59,6 +58,8 @@ videosRouter.use('/', watchingRouter)
 videosRouter.use('/', liveRouter)
 videosRouter.use('/', uploadRouter)
 videosRouter.use('/', updateRouter)
+videosRouter.use('/', filesRouter)
+videosRouter.use('/', transcodingRouter)
 
 videosRouter.get('/categories',
   openapiOperationDoc({ operationId: 'getCategories' }),
@@ -93,10 +94,6 @@ videosRouter.get('/:id/description',
   asyncMiddleware(videosGetValidator),
   asyncMiddleware(getVideoDescription)
 )
-videosRouter.get('/:id/metadata/:videoFileId',
-  asyncMiddleware(videoFileMetadataGetValidator),
-  asyncMiddleware(getVideoFileMetadata)
-)
 videosRouter.get('/:id',
   openapiOperationDoc({ operationId: 'getVideo' }),
   optionalAuthenticate,
@@ -161,7 +158,7 @@ async function viewVideo (req: express.Request, res: express.Response) {
     const serverActor = await getServerActor()
     await sendView(serverActor, video, undefined)
 
-    Hooks.runAction('action:api.video.viewed', { video: video, ip })
+    Hooks.runAction('action:api.video.viewed', { video: video, ip, req, res })
   }
 
   return res.status(HttpStatusCode.NO_CONTENT_204).end()
@@ -177,12 +174,6 @@ async function getVideoDescription (req: express.Request, res: express.Response)
   return res.json({ description })
 }
 
-async function getVideoFileMetadata (req: express.Request, res: express.Response) {
-  const videoFile = await VideoFileModel.loadWithMetadata(toInt(req.params.videoFileId))
-
-  return res.json(videoFile.metadata)
-}
-
 async function listVideos (req: express.Request, res: express.Response) {
   const serverActor = await getServerActor()
 
@@ -210,7 +201,7 @@ async function listVideos (req: express.Request, res: express.Response) {
   return res.json(getFormattedObjects(resultList.data, resultList.total, guessAdditionalAttributesFromQuery(query)))
 }
 
-async function removeVideo (_req: express.Request, res: express.Response) {
+async function removeVideo (req: express.Request, res: express.Response) {
   const videoInstance = res.locals.videoAll
 
   await sequelizeTypescript.transaction(async t => {
@@ -220,7 +211,7 @@ async function removeVideo (_req: express.Request, res: express.Response) {
   auditLogger.delete(getAuditIdFromRes(res), new VideoAuditView(videoInstance.toFormattedDetailsJSON()))
   logger.info('Video with name %s and uuid %s deleted.', videoInstance.name, videoInstance.uuid)
 
-  Hooks.runAction('action:api.video.deleted', { video: videoInstance })
+  Hooks.runAction('action:api.video.deleted', { video: videoInstance, req, res })
 
   return res.type('json')
             .status(HttpStatusCode.NO_CONTENT_204)