import {NextFunction, Request, Response} from "express"; import {Error, ErrorCodes} from "../../common/entities/Error"; import {ObjectManagerRepository} from "../model/ObjectManagerRepository"; import {User} from "../../common/entities/User"; export class UserMWs { public static changePassword(req:Request, res:Response, next:NextFunction) { if ((typeof req.body === 'undefined') || (typeof req.body.userModReq === 'undefined') || (typeof req.body.userModReq.id === 'undefined') || (typeof req.body.userModReq.oldPassword === 'undefined') || (typeof req.body.userModReq.newPassword === 'undefined')) { return next(); } ObjectManagerRepository.getInstance().getUserManager().changePassword(req.body.userModReq, (err, result) => { if ((err) || (!result)) { return next(new Error(ErrorCodes.GENERAL_ERROR)); } return next(); }); } public static createUser(req:Request, res:Response, next:NextFunction) { if ((typeof req.body === 'undefined') || (typeof req.body.newUser === 'undefined')) { return next(); } ObjectManagerRepository.getInstance().getUserManager().createUser(req.body.newUser, (err, result) => { if ((err) || (!result)) { return next(new Error(ErrorCodes.USER_CREATION_ERROR)); } return next(); }); } public static deleteUser(req:Request, res:Response, next:NextFunction) { if ((typeof req.params === 'undefined') || (typeof req.params.id === 'undefined')) { return next(); } ObjectManagerRepository.getInstance().getUserManager().deleteUser(req.params.id, (err, result) => { if ((err) || (!result)) { return next(new Error(ErrorCodes.GENERAL_ERROR)); } return next(); }); } public static changeRole(req:Request, res:Response, next:NextFunction) { if ((typeof req.params === 'undefined') || (typeof req.params.id === 'undefined') || (typeof req.body === 'undefined') || (typeof req.body.newRole === 'undefined')) { return next(); } ObjectManagerRepository.getInstance().getUserManager().changeRole(req.params.id, req.body.newRole, (err) => { if (err) { return next(new Error(ErrorCodes.GENERAL_ERROR)); } return next(); }); } public static listUsers(req:Request, res:Response, next:NextFunction) { ObjectManagerRepository.getInstance().getUserManager().find({}, (err, result:Array) => { if ((err) || (!result)) { return next(new Error(ErrorCodes.GENERAL_ERROR)); } for (let i = 0; i < result.length; i++) { result[i].password = ""; } req.resultPipe = result; return next(); }); } }