northwind-rest-api
Version:
Local REST API Exposing Northwind Database.
30 lines (25 loc) • 985 B
JavaScript
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;