From a399da7e406d4fc6bff1aec0d3414ad65492e1a9 Mon Sep 17 00:00:00 2001 From: John Furrow Date: Tue, 28 Nov 2017 22:13:15 -0800 Subject: [PATCH] Fix erroneous stringified boolean value interpretation --- server/middleware/booleanCoerce.js | 13 +++++++++++++ server/routes/client.js | 12 +++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 server/middleware/booleanCoerce.js diff --git a/server/middleware/booleanCoerce.js b/server/middleware/booleanCoerce.js new file mode 100644 index 00000000..3f3d73a6 --- /dev/null +++ b/server/middleware/booleanCoerce.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = key => { + return (req, res, next) => { + const value = req.body[key]; + + if (value && typeof value === 'string') { + req.body[key] = value === 'true'; + } + + next(); + }; +}; diff --git a/server/routes/client.js b/server/routes/client.js index c2d4b741..b7b75f49 100644 --- a/server/routes/client.js +++ b/server/routes/client.js @@ -3,6 +3,7 @@ const express = require('express'); const multer = require('multer'); const ajaxUtil = require('../util/ajaxUtil'); +const booleanCoerce = require('../middleware/booleanCoerce'); const client = require('../models/client'); const clientRequestService = require('../services/clientRequestService'); const router = express.Router(); @@ -17,9 +18,14 @@ router.post('/add', function(req, res, next) { client.addUrls(req.body, ajaxUtil.getResponseFn(res)); }); -router.post('/add-files', upload.array('torrents'), function(req, res, next) { - client.addFiles(req, ajaxUtil.getResponseFn(res)); -}); +router.post( + '/add-files', + upload.array('torrents'), + booleanCoerce('isBasePath'), + function(req, res, next) { + client.addFiles(req, ajaxUtil.getResponseFn(res)); + } +); router.get('/settings', function(req, res, next) { client.getSettings(req.query, ajaxUtil.getResponseFn(res));