25f90822847fda52028ece9d19b498b4f9a66493
[oweals/peertube.git] / server / helpers / custom-validators / video-blacklist.ts
1 import { Response } from 'express'
2 import * as validator from 'validator'
3 import { CONSTRAINTS_FIELDS } from '../../initializers'
4 import { VideoBlacklistModel } from '../../models/video/video-blacklist'
5
6 const VIDEO_BLACKLIST_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEO_BLACKLIST
7
8 function isVideoBlacklistReasonValid (value: string) {
9   return value === null || validator.isLength(value, VIDEO_BLACKLIST_CONSTRAINTS_FIELDS.REASON)
10 }
11
12 async function doesVideoBlacklistExist (videoId: number, res: Response) {
13   const videoBlacklist = await VideoBlacklistModel.loadByVideoId(videoId)
14
15   if (videoBlacklist === null) {
16     res.status(404)
17        .json({ error: 'Blacklisted video not found' })
18        .end()
19
20     return false
21   }
22
23   res.locals.videoBlacklist = videoBlacklist
24   return true
25 }
26
27 // ---------------------------------------------------------------------------
28
29 export {
30   isVideoBlacklistReasonValid,
31   doesVideoBlacklistExist
32 }