UNPKG

get-express-starter

Version:

Get production ready express boilerplate with a single command

73 lines (65 loc) 1.53 kB
const Joi = require('joi'); const { password, objectId } = require('./custom.validation'); const { ROLES_ALLOWED } = require('../config/roles'); const createUser = { body: Joi.object().keys({ email: Joi.string().required().email(), password: Joi.string().required().custom(password), name: Joi.string().required(), role: Joi.string() .required() .lowercase() .valid(...ROLES_ALLOWED), }), }; const getUsers = { query: Joi.object().keys({ email: Joi.string(), role: Joi.string(), sortBy: Joi.string(), search: Joi.string(), limit: Joi.number().integer(), page: Joi.number().integer(), }), }; const getUser = { params: Joi.object().keys({ userId: Joi.string().custom(objectId), }), }; const updateProfile = { body: Joi.object().keys({ email: Joi.string().email(), name: Joi.string(), newPassword: Joi.string().custom(password), oldPassword: Joi.string().custom(password), }), }; const updateUser = { params: Joi.object().keys({ userId: Joi.required().custom(objectId), }), body: Joi.object() .keys({ email: Joi.string().email(), name: Joi.string(), role: Joi.string() .lowercase() .valid(...ROLES_ALLOWED), password: Joi.string().custom(password), }) .min(1), }; const deleteUser = { params: Joi.object().keys({ userId: Joi.string().custom(objectId), }), }; module.exports = { createUser, getUsers, getUser, updateProfile, updateUser, deleteUser, };