diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2016-05-22 09:15:00 +0200 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2016-05-22 09:15:00 +0200 |
commit | 46246b5f194caafba4e3a72e9365acd8b35785de (patch) | |
tree | 943689b44a9e447872cd7dd1c2a70dcc9256b990 /server/middlewares | |
parent | 68ce3ae021c9bc11b155044df6d23ba60e91eee4 (diff) | |
download | PeerTube-46246b5f194caafba4e3a72e9365acd8b35785de.tar.gz PeerTube-46246b5f194caafba4e3a72e9365acd8b35785de.tar.zst PeerTube-46246b5f194caafba4e3a72e9365acd8b35785de.zip |
Extends the search feature by customizing the search field (name,
podUrl...)
Diffstat (limited to 'server/middlewares')
-rw-r--r-- | server/middlewares/index.js | 2 | ||||
-rw-r--r-- | server/middlewares/reqValidators/videos.js | 4 | ||||
-rw-r--r-- | server/middlewares/search.js | 15 |
3 files changed, 20 insertions, 1 deletions
diff --git a/server/middlewares/index.js b/server/middlewares/index.js index 35858da2c..b30a7be56 100644 --- a/server/middlewares/index.js +++ b/server/middlewares/index.js | |||
@@ -3,6 +3,7 @@ | |||
3 | const oauth2 = require('./oauth2') | 3 | const oauth2 = require('./oauth2') |
4 | const pagination = require('./pagination') | 4 | const pagination = require('./pagination') |
5 | const reqValidatorsMiddleware = require('./reqValidators') | 5 | const reqValidatorsMiddleware = require('./reqValidators') |
6 | const search = require('./search') | ||
6 | const sort = require('./sort') | 7 | const sort = require('./sort') |
7 | const secureMiddleware = require('./secure') | 8 | const secureMiddleware = require('./secure') |
8 | 9 | ||
@@ -10,6 +11,7 @@ const middlewares = { | |||
10 | oauth2: oauth2, | 11 | oauth2: oauth2, |
11 | pagination: pagination, | 12 | pagination: pagination, |
12 | reqValidators: reqValidatorsMiddleware, | 13 | reqValidators: reqValidatorsMiddleware, |
14 | search: search, | ||
13 | sort: sort, | 15 | sort: sort, |
14 | secure: secureMiddleware | 16 | secure: secureMiddleware |
15 | } | 17 | } |
diff --git a/server/middlewares/reqValidators/videos.js b/server/middlewares/reqValidators/videos.js index d4dec1a59..d444c9f0a 100644 --- a/server/middlewares/reqValidators/videos.js +++ b/server/middlewares/reqValidators/videos.js | |||
@@ -81,7 +81,9 @@ function videosRemove (req, res, next) { | |||
81 | } | 81 | } |
82 | 82 | ||
83 | function videosSearch (req, res, next) { | 83 | function videosSearch (req, res, next) { |
84 | req.checkParams('name', 'Should have a name').notEmpty() | 84 | const searchableColumns = constants.SEARCHABLE_COLUMNS.VIDEOS |
85 | req.checkParams('value', 'Should have a name').notEmpty() | ||
86 | req.checkQuery('field', 'Should have correct searchable column').optional().isIn(searchableColumns) | ||
85 | 87 | ||
86 | logger.debug('Checking videosSearch parameters', { parameters: req.params }) | 88 | logger.debug('Checking videosSearch parameters', { parameters: req.params }) |
87 | 89 | ||
diff --git a/server/middlewares/search.js b/server/middlewares/search.js new file mode 100644 index 000000000..89302a564 --- /dev/null +++ b/server/middlewares/search.js | |||
@@ -0,0 +1,15 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | const searchMiddleware = { | ||
4 | setVideosSearch: setVideosSearch | ||
5 | } | ||
6 | |||
7 | function setVideosSearch (req, res, next) { | ||
8 | if (!req.query.field) req.query.field = 'name' | ||
9 | |||
10 | return next() | ||
11 | } | ||
12 | |||
13 | // --------------------------------------------------------------------------- | ||
14 | |||
15 | module.exports = searchMiddleware | ||