radivoje.milutinovic 3 лет назад
Родитель
Сommit
0c2de2a622
5 измененных файлов: 10 добавлений и 19 удалений
  1. 1
    0
      .gitignore
  2. 0
    14
      src/database/models/user.js
  3. 3
    2
      src/endpoints/user.js
  4. 2
    2
      src/logging/loggerWinston.js
  5. 4
    1
      src/validators/users.js

+ 1
- 0
.gitignore Просмотреть файл

node_modules/ node_modules/
loggerFiles/ loggerFiles/
public/loggerFiles

+ 0
- 14
src/database/models/user.js Просмотреть файл

const mongoose = require('mongoose') const mongoose = require('mongoose')
const Joi = require('joi')


const userSchema = new mongoose.Schema({ const userSchema = new mongoose.Schema({
name: { name: {
}] }]
}) })


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) { // userSchema.pre('save', async function(next) {
// const user = this // const user = this
// console.log('pre hash: ' + user.password) // console.log('pre hash: ' + user.password)

+ 3
- 2
src/endpoints/user.js Просмотреть файл

return res.status(400).send('Object cant be empty') return res.status(400).send('Object cant be empty')
} }


const err = await User.joiValidate(userModel)
const err = getUserValidator.validate(userModel).error
if (err) { if (err) {
return res.status(400).send(err.message) return res.status(400).send(err.message)
} }
if (Object.entries(objBody).length == 0) { if (Object.entries(objBody).length == 0) {
return res.status(400).send('Invalid input parameters') return res.status(400).send('Invalid input parameters')
} }
const err = await User.joiValidate(objBody)

const err = getUserValidator.validate(objBody).error
if (err) { if (err) {
return res.status(400).send(err.message) return res.status(400).send(err.message)
} }

+ 2
- 2
src/logging/loggerWinston.js Просмотреть файл

format: winston.format.json(), format: winston.format.json(),
defaultMeta: { service: 'user-service' }, defaultMeta: { service: 'user-service' },
transports: [ 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' }),
], ],
}); });



+ 4
- 1
src/validators/users.js Просмотреть файл



const schema = { const schema = {
getUserValidator: Joi.object({ 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()
}) })
} }



Загрузка…
Отмена
Сохранить