]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/custom-validators/remote/videos.ts
Move video file metadata in their own table
[github/Chocobozzz/PeerTube.git] / server / helpers / custom-validators / remote / videos.ts
index e14673cb36a717844b72b1ddd8396754291af4b2..091cd2186b6e263d9e51a5484cad15e8d4330f24 100644 (file)
@@ -23,17 +23,18 @@ import {
   isVideoNSFWValid,
   isVideoDescriptionValid,
   isVideoDurationValid,
-  isVideoInfoHashValid,
+  isVideoFileInfoHashValid,
   isVideoNameValid,
   isVideoTagsValid,
-  isVideoExtnameValid
+  isVideoFileExtnameValid,
+  isVideoFileResolutionValid
 } from '../videos'
 
 const ENDPOINT_ACTIONS = REQUEST_ENDPOINT_ACTIONS[REQUEST_ENDPOINTS.VIDEOS]
 
 function isEachRemoteRequestVideosValid (requests: any[]) {
   return isArray(requests) &&
-    requests.every(function (request) {
+    requests.every(request => {
       const video = request.data
 
       if (!video) return false
@@ -63,7 +64,7 @@ function isEachRemoteRequestVideosValid (requests: any[]) {
 
 function isEachRemoteRequestVideosQaduValid (requests: any[]) {
   return isArray(requests) &&
-    requests.every(function (request) {
+    requests.every(request => {
       const video = request.data
 
       if (!video) return false
@@ -79,7 +80,7 @@ function isEachRemoteRequestVideosQaduValid (requests: any[]) {
 
 function isEachRemoteRequestVideosEventsValid (requests: any[]) {
   return isArray(requests) &&
-    requests.every(function (request) {
+    requests.every(request => {
       const eventData = request.data
 
       if (!eventData) return false
@@ -121,14 +122,22 @@ function isCommonVideoAttributesValid (video: any) {
          isVideoNSFWValid(video.nsfw) &&
          isVideoDescriptionValid(video.description) &&
          isVideoDurationValid(video.duration) &&
-         isVideoInfoHashValid(video.infoHash) &&
          isVideoNameValid(video.name) &&
          isVideoTagsValid(video.tags) &&
          isVideoUUIDValid(video.uuid) &&
-         isVideoExtnameValid(video.extname) &&
          isVideoViewsValid(video.views) &&
          isVideoLikesValid(video.likes) &&
-         isVideoDislikesValid(video.dislikes)
+         isVideoDislikesValid(video.dislikes) &&
+         isArray(video.files) &&
+         video.files.every(videoFile => {
+           if (!videoFile) return false
+
+           return (
+             isVideoFileInfoHashValid(videoFile.infoHash) &&
+             isVideoFileExtnameValid(videoFile.extname) &&
+             isVideoFileResolutionValid(videoFile.resolution)
+           )
+         })
 }
 
 function isRequestTypeAddValid (value: string) {