diff options
Diffstat (limited to 'server/controllers/api/videos/blacklist.js')
-rw-r--r-- | server/controllers/api/videos/blacklist.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/server/controllers/api/videos/blacklist.js b/server/controllers/api/videos/blacklist.js new file mode 100644 index 000000000..8c3e2a69d --- /dev/null +++ b/server/controllers/api/videos/blacklist.js | |||
@@ -0,0 +1,43 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | const express = require('express') | ||
4 | |||
5 | const db = require('../../../initializers/database') | ||
6 | const logger = require('../../../helpers/logger') | ||
7 | const middlewares = require('../../../middlewares') | ||
8 | const admin = middlewares.admin | ||
9 | const oAuth = middlewares.oauth | ||
10 | const validators = middlewares.validators | ||
11 | const validatorsVideos = validators.videos | ||
12 | |||
13 | const router = express.Router() | ||
14 | |||
15 | router.post('/:id/blacklist', | ||
16 | oAuth.authenticate, | ||
17 | admin.ensureIsAdmin, | ||
18 | validatorsVideos.videosBlacklist, | ||
19 | addVideoToBlacklist | ||
20 | ) | ||
21 | |||
22 | // --------------------------------------------------------------------------- | ||
23 | |||
24 | module.exports = router | ||
25 | |||
26 | // --------------------------------------------------------------------------- | ||
27 | |||
28 | function addVideoToBlacklist (req, res, next) { | ||
29 | const videoInstance = res.locals.video | ||
30 | |||
31 | const toCreate = { | ||
32 | videoId: videoInstance.id | ||
33 | } | ||
34 | |||
35 | db.BlacklistedVideo.create(toCreate).asCallback(function (err) { | ||
36 | if (err) { | ||
37 | logger.error('Errors when blacklisting video ', { error: err }) | ||
38 | return next(err) | ||
39 | } | ||
40 | |||
41 | return res.type('json').status(204).end() | ||
42 | }) | ||
43 | } | ||