import {
isVideoAuthorValid,
isVideoThumbnailDataValid,
- isVideoRemoteIdValid,
+ isVideoUUIDValid,
isVideoAbuseReasonValid,
isVideoAbuseReporterUsernameValid,
isVideoViewsValid,
isVideoNSFWValid,
isVideoDescriptionValid,
isVideoDurationValid,
- isVideoInfoHashValid,
+ isVideoFileInfoHashValid,
isVideoNameValid,
isVideoTagsValid,
- isVideoExtnameValid
+ isVideoFileExtnameValid,
+ isVideoFileResolutionValid
} from '../videos'
const ENDPOINT_ACTIONS = REQUEST_ENDPOINT_ACTIONS[REQUEST_ENDPOINTS.VIDEOS]
-function isEachRemoteRequestVideosValid (requests) {
+function isEachRemoteRequestVideosValid (requests: any[]) {
return isArray(requests) &&
- requests.every(function (request) {
+ requests.every(request => {
const video = request.data
if (!video) return false
) ||
(
isRequestTypeRemoveValid(request.type) &&
- isVideoRemoteIdValid(video.remoteId)
+ isVideoUUIDValid(video.uuid)
) ||
(
isRequestTypeReportAbuseValid(request.type) &&
- isVideoRemoteIdValid(request.data.videoRemoteId) &&
+ isVideoUUIDValid(request.data.videoUUID) &&
isVideoAbuseReasonValid(request.data.reportReason) &&
isVideoAbuseReporterUsernameValid(request.data.reporterUsername)
)
})
}
-function isEachRemoteRequestVideosQaduValid (requests) {
+function isEachRemoteRequestVideosQaduValid (requests: any[]) {
return isArray(requests) &&
- requests.every(function (request) {
+ requests.every(request => {
const video = request.data
if (!video) return false
return (
- isVideoRemoteIdValid(video.remoteId) &&
- (has(video, 'views') === false || isVideoViewsValid) &&
- (has(video, 'likes') === false || isVideoLikesValid) &&
- (has(video, 'dislikes') === false || isVideoDislikesValid)
+ isVideoUUIDValid(video.uuid) &&
+ (has(video, 'views') === false || isVideoViewsValid(video.views)) &&
+ (has(video, 'likes') === false || isVideoLikesValid(video.likes)) &&
+ (has(video, 'dislikes') === false || isVideoDislikesValid(video.dislikes))
)
})
}
-function isEachRemoteRequestVideosEventsValid (requests) {
+function isEachRemoteRequestVideosEventsValid (requests: any[]) {
return isArray(requests) &&
- requests.every(function (request) {
+ requests.every(request => {
const eventData = request.data
if (!eventData) return false
return (
- isVideoRemoteIdValid(eventData.remoteId) &&
+ isVideoUUIDValid(eventData.uuid) &&
values(REQUEST_VIDEO_EVENT_TYPES).indexOf(eventData.eventType) !== -1 &&
isVideoEventCountValid(eventData.count)
)
isEachRemoteRequestVideosEventsValid
}
+declare global {
+ namespace ExpressValidator {
+ export interface Validator {
+ isEachRemoteRequestVideosValid,
+ isEachRemoteRequestVideosQaduValid,
+ isEachRemoteRequestVideosEventsValid
+ }
+ }
+}
+
// ---------------------------------------------------------------------------
-function isCommonVideoAttributesValid (video) {
+function isCommonVideoAttributesValid (video: any) {
return isVideoDateValid(video.createdAt) &&
isVideoDateValid(video.updatedAt) &&
isVideoCategoryValid(video.category) &&
isVideoNSFWValid(video.nsfw) &&
isVideoDescriptionValid(video.description) &&
isVideoDurationValid(video.duration) &&
- isVideoInfoHashValid(video.infoHash) &&
isVideoNameValid(video.name) &&
isVideoTagsValid(video.tags) &&
- isVideoRemoteIdValid(video.remoteId) &&
- isVideoExtnameValid(video.extname) &&
+ isVideoUUIDValid(video.uuid) &&
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) {
+function isRequestTypeAddValid (value: string) {
return value === ENDPOINT_ACTIONS.ADD
}
-function isRequestTypeUpdateValid (value) {
+function isRequestTypeUpdateValid (value: string) {
return value === ENDPOINT_ACTIONS.UPDATE
}
-function isRequestTypeRemoveValid (value) {
+function isRequestTypeRemoveValid (value: string) {
return value === ENDPOINT_ACTIONS.REMOVE
}
-function isRequestTypeReportAbuseValid (value) {
+function isRequestTypeReportAbuseValid (value: string) {
return value === ENDPOINT_ACTIONS.REPORT_ABUSE
}