| @@ -1,2 +1,3 @@ | |||
| node_modules/ | |||
| loggerFiles/ | |||
| public/loggerFiles | |||
| @@ -1,5 +1,4 @@ | |||
| const mongoose = require('mongoose') | |||
| const Joi = require('joi') | |||
| const userSchema = new mongoose.Schema({ | |||
| name: { | |||
| @@ -24,19 +23,6 @@ const userSchema = new mongoose.Schema({ | |||
| }] | |||
| }) | |||
| userSchema.statics.joiValidate = async function(obj) { | |||
| const schema = Joi.object({ | |||
| name: Joi.string().min(2).required(), | |||
| password: Joi.string().min(8).regex(/[a-zA-Z0-9]{3,30}/).required(), | |||
| email: Joi.string().email().required(), | |||
| role: Joi.string() | |||
| }) | |||
| const validation = schema.validate(obj); | |||
| return validation.error | |||
| } | |||
| // userSchema.pre('save', async function(next) { | |||
| // const user = this | |||
| // console.log('pre hash: ' + user.password) | |||
| @@ -35,7 +35,7 @@ const createUser = async (req, res, next) => { | |||
| return res.status(400).send('Object cant be empty') | |||
| } | |||
| const err = await User.joiValidate(userModel) | |||
| const err = getUserValidator.validate(userModel).error | |||
| if (err) { | |||
| return res.status(400).send(err.message) | |||
| } | |||
| @@ -57,7 +57,8 @@ const updateUser = async (req, res, next) => { | |||
| if (Object.entries(objBody).length == 0) { | |||
| return res.status(400).send('Invalid input parameters') | |||
| } | |||
| const err = await User.joiValidate(objBody) | |||
| const err = getUserValidator.validate(objBody).error | |||
| if (err) { | |||
| return res.status(400).send(err.message) | |||
| } | |||
| @@ -6,8 +6,8 @@ const loggerWinston = winston.createLogger({ | |||
| format: winston.format.json(), | |||
| defaultMeta: { service: 'user-service' }, | |||
| transports: [ | |||
| new winston.transports.File({ filename: 'loggerFiles/error.log', level: 'error' }), | |||
| new winston.transports.File({ filename: 'loggerFiles/all.log', level: 'silly' }), | |||
| new winston.transports.File({ filename: '../public/loggerFiles/error.log', level: 'error' }), | |||
| new winston.transports.File({ filename: '../public/loggerFiles/all.log', level: 'silly' }), | |||
| ], | |||
| }); | |||
| @@ -2,7 +2,10 @@ const Joi = require("joi"); | |||
| const schema = { | |||
| getUserValidator: Joi.object({ | |||
| id: Joi.string().required() | |||
| name: Joi.string().min(2).required(), | |||
| password: Joi.string().min(8).regex(/[a-zA-Z0-9]{3,30}/).required(), | |||
| email: Joi.string().email().required(), | |||
| role: Joi.string() | |||
| }) | |||
| } | |||