From 46246b5f194caafba4e3a72e9365acd8b35785de Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Sun, 22 May 2016 09:15:00 +0200 Subject: Extends the search feature by customizing the search field (name, podUrl...) --- server/middlewares/index.js | 2 ++ server/middlewares/reqValidators/videos.js | 4 +++- server/middlewares/search.js | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 server/middlewares/search.js (limited to 'server/middlewares') 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 @@ const oauth2 = require('./oauth2') const pagination = require('./pagination') const reqValidatorsMiddleware = require('./reqValidators') +const search = require('./search') const sort = require('./sort') const secureMiddleware = require('./secure') @@ -10,6 +11,7 @@ const middlewares = { oauth2: oauth2, pagination: pagination, reqValidators: reqValidatorsMiddleware, + search: search, sort: sort, secure: secureMiddleware } 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) { } function videosSearch (req, res, next) { - req.checkParams('name', 'Should have a name').notEmpty() + const searchableColumns = constants.SEARCHABLE_COLUMNS.VIDEOS + req.checkParams('value', 'Should have a name').notEmpty() + req.checkQuery('field', 'Should have correct searchable column').optional().isIn(searchableColumns) logger.debug('Checking videosSearch parameters', { parameters: req.params }) 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 @@ +'use strict' + +const searchMiddleware = { + setVideosSearch: setVideosSearch +} + +function setVideosSearch (req, res, next) { + if (!req.query.field) req.query.field = 'name' + + return next() +} + +// --------------------------------------------------------------------------- + +module.exports = searchMiddleware -- cgit v1.2.3