UNPKG

northwind-rest-api

Version:

Local REST API Exposing 'Northwind Traders' Database.

30 lines (25 loc) 985 B
const Joi = require("joi"); const BaseModel = require("./base-model"); class User extends BaseModel { constructor(user) { super(user.id); this.firstName = user.firstName; this.lastName = user.lastName; this.email = user.email?.toLowerCase(); this.password = user.password; this.role = user.role; } static #validationSchema = Joi.object({ id: Joi.number().optional().integer().positive(), firstName: Joi.string().required().min(2).max(100), lastName: Joi.string().required().min(2).max(100), email: Joi.string().required().email(), password: Joi.string().required().min(4).max(256), role: Joi.string().optional().valid("Admin", "User") }).error(BaseModel.customErrors); validate() { const result = User.#validationSchema.validate(this, { abortEarly: false }); return result.error?.message; } } module.exports = User;