From 2a3a1dd35f8eed5bfc11a31effe042fd71248ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bodor=20M=C3=A1t=C3=A9?= <bmate711@gmail.com> Date: Fri, 15 May 2020 21:15:58 +0200 Subject: [PATCH] Create user response --- src/middlewares/user/addUser.ts | 2 +- src/middlewares/user/deleteUser.ts | 3 +- src/middlewares/user/getUser.ts | 24 +++++++-------- src/middlewares/user/getUsersList.ts | 2 +- src/middlewares/user/responseUser.ts | 7 +++++ src/middlewares/user/responseUserList.ts | 7 +++++ src/middlewares/user/updateUser.ts | 38 +++++++++++------------- src/middlewares/utils/emptyResponse.ts | 5 ++++ src/routes/user.ts | 14 +++++---- 9 files changed, 60 insertions(+), 42 deletions(-) create mode 100644 src/middlewares/user/responseUser.ts create mode 100644 src/middlewares/user/responseUserList.ts create mode 100644 src/middlewares/utils/emptyResponse.ts diff --git a/src/middlewares/user/addUser.ts b/src/middlewares/user/addUser.ts index 8745d631..af47ce6e 100644 --- a/src/middlewares/user/addUser.ts +++ b/src/middlewares/user/addUser.ts @@ -22,7 +22,7 @@ const addUser = () => (req: Request, res: Response, next: NextFunction) => { res.status(201); res.data = {profile}; } - res.json(profile); + next() }); } diff --git a/src/middlewares/user/deleteUser.ts b/src/middlewares/user/deleteUser.ts index 5e31308b..fe4eb181 100644 --- a/src/middlewares/user/deleteUser.ts +++ b/src/middlewares/user/deleteUser.ts @@ -5,11 +5,10 @@ const deletUser = () => (req: Request, res: Response, next: NextFunction) => { Profile.findByIdAndDelete(req.params.id, (error) => { if (error) { res.status(400); - } else { res.status(204); } - res.json({}); + next(); }); } diff --git a/src/middlewares/user/getUser.ts b/src/middlewares/user/getUser.ts index 8988a784..0f165ef4 100644 --- a/src/middlewares/user/getUser.ts +++ b/src/middlewares/user/getUser.ts @@ -1,17 +1,17 @@ -import {Request, Response, NextFunction} from 'express'; +import { Request, Response, NextFunction } from 'express'; import Profile from '../../models/ProfileSchema'; -const getUser = () => (req: Request, res: Response, next: NextFunction) =>{ - Profile.findById(req.params.id, (error, profile) => { - if (!error) { - res.status(200); - res.data = {profile}; - } else { - console.warn(error); - res.status(400); - } - res.json(profile); - }); +const getUser = () => (req: Request, res: Response, next: NextFunction) => { + Profile.findById(req.params.id, (error, profile) => { + if (error) { + console.warn(error); + res.status(400); + } else { + res.status(200); + res.data = { profile }; + } + next(); + }); } export default getUser; \ No newline at end of file diff --git a/src/middlewares/user/getUsersList.ts b/src/middlewares/user/getUsersList.ts index e05b7527..5cd7a515 100644 --- a/src/middlewares/user/getUsersList.ts +++ b/src/middlewares/user/getUsersList.ts @@ -10,7 +10,7 @@ const getUsersList = () => (req: Request, res: Response, next: NextFunction) =>{ res.status(200); res.data = {profiles} } - res.json(profiles); + next(); }) } diff --git a/src/middlewares/user/responseUser.ts b/src/middlewares/user/responseUser.ts new file mode 100644 index 00000000..07d6958c --- /dev/null +++ b/src/middlewares/user/responseUser.ts @@ -0,0 +1,7 @@ +import { Request, Response, NextFunction, response } from 'express'; + +const responseUser = () => (req: Request, res: Response) => { + res.json(res.data.profile); +} + +export default responseUser; \ No newline at end of file diff --git a/src/middlewares/user/responseUserList.ts b/src/middlewares/user/responseUserList.ts new file mode 100644 index 00000000..364b3c49 --- /dev/null +++ b/src/middlewares/user/responseUserList.ts @@ -0,0 +1,7 @@ +import { Request, Response, NextFunction, response } from 'express'; + +const responseUserList = () => (req: Request, res: Response) => { + res.json(res.data.profiles); +} + +export default responseUserList; \ No newline at end of file diff --git a/src/middlewares/user/updateUser.ts b/src/middlewares/user/updateUser.ts index 712fa553..2097af52 100644 --- a/src/middlewares/user/updateUser.ts +++ b/src/middlewares/user/updateUser.ts @@ -4,29 +4,25 @@ import Profile from '../../models/ProfileSchema'; const updateUser = () => (req: Request, res: Response, next: NextFunction) => { const validFields = ['studentCardNumber', 'roomNumber', 'picture']; Profile.findOne( - {_id : req.params.id}, - (error, profile) => { + {_id : req.params.id}, + (error, profile) => { + res.status(200); + if (error) { res.status(400); - if (error) { - res.status(400); - - } - else { - if(profile){ - - validFields.forEach(field => { - const value = req.body[field] - if(value) - profile.set(field, value); - }); - - res.status(200); - profile.save(); - res.data = {profile}; - } - } - res.json(profile); + } + else { + if(profile){ + validFields.forEach(field => { + const value = req.body[field] + if(value) + profile.set(field, value); + }); + profile.save(); + res.data = {profile}; + } } + next(); + } ); } diff --git a/src/middlewares/utils/emptyResponse.ts b/src/middlewares/utils/emptyResponse.ts new file mode 100644 index 00000000..60be09bb --- /dev/null +++ b/src/middlewares/utils/emptyResponse.ts @@ -0,0 +1,5 @@ +import { Request, Response } from 'express'; + + + +const emptyResponse = () => (req: Request, res: Response) => res.json({}); \ No newline at end of file diff --git a/src/routes/user.ts b/src/routes/user.ts index c3baf0ac..cb39dd4d 100644 --- a/src/routes/user.ts +++ b/src/routes/user.ts @@ -10,14 +10,18 @@ import updateUser from "../middlewares/user/updateUser"; import updateWarning from "../middlewares/user/updateWarning"; import addUser from '../middlewares/user/addUser'; import authenticated from '../middlewares/auth/authenticated'; +import emptyResponse from 'src/middlewares/utils/emptyResponse'; +import responseUser from 'src/middlewares/user/responseUser'; +import responseUserList from 'src/middlewares/user/responseUserList'; + const usersRoute = (app: Application): void => { - app.get('/users', authenticated(), getUsersList() ); + app.get('/users', authenticated(), getUsersList(), responseUserList()); - app.post('/users', authenticated(), addUser() ); + app.post('/users', authenticated(), addUser(), responseUser()); - app.get('/users/:id', getUser() ); + app.get('/users/:id', getUser(), responseUser() ); app.get('/users/:id/warnings', getWarningsList() ); @@ -25,11 +29,11 @@ import authenticated from '../middlewares/auth/authenticated'; app.post('/users/:id/warnings', addWarning()); - app.put('/users/:id', updateUser()); + app.put('/users/:id', updateUser(), responseUser() ); app.put('/users/:userId/warnings/:warningId', updateWarning()); - app.delete('/users/:id', deleteUser()); + app.delete('/users/:id', deleteUser(), emptyResponse()); app.delete('/users/:userId/warnings/:warningId', deleteWarning()); } -- GitLab