From 7b6d43bcc80247b11911acfd231c72411f35a818 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 27 Mar 2020 13:37:03 -0400 Subject: [PATCH] feat: added checkRequired middleware for API calls --- src/middleware/index.js | 11 +++++++++++ src/routes/write/users.js | 7 +------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/middleware/index.js b/src/middleware/index.js index bfc981ec0c36..b7e4e0d70102 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -237,3 +237,14 @@ middleware.validateAuth = helpers.try(async function validateAuth(req, res, next next(err); } }); + +middleware.checkRequired = function (fields, req, res, next) { + // Used in API calls to ensure that necessary parameters/data values are present + const missing = fields.filter(field => !req.body.hasOwnProperty(field)); + + if (!missing.length) { + next(); + } + + controllers.helpers.formatApiResponse(400, res, new Error('Required parameters were missing from this API call: ' + missing.join(', '))); +}; diff --git a/src/routes/write/users.js b/src/routes/write/users.js index 407dbef0e04d..cf08b6f5d33a 100644 --- a/src/routes/write/users.js +++ b/src/routes/write/users.js @@ -15,12 +15,7 @@ const helpers = require('../../controllers/helpers'); module.exports = function () { var app = require('express').Router(); - app.post('/', middleware.authenticate, middleware.isAdmin, async (req, res) => { - helpers.checkRequired(['username'], req, res); - // if (!utils.checkRequired(['username'], req, res)) { - // return false; - // } - + app.post('/', middleware.checkRequired.bind(null, ['username']), middleware.authenticate, middleware.isAdmin, async (req, res) => { const uid = await users.create(req.body); helpers.formatApiResponse(200, res, { uid: uid,