From 9bd2662976a75d3b03364cdbe6419e57c80f99a6 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 4 Aug 2016 22:32:36 +0200 Subject: Implement user API (create, update, remove, list) --- server/models/user.js | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'server/models/user.js') diff --git a/server/models/user.js b/server/models/user.js index 14ffecbff..0bbd638d4 100644 --- a/server/models/user.js +++ b/server/models/user.js @@ -1,28 +1,49 @@ const mongoose = require('mongoose') +const customUsersValidators = require('../helpers/custom-validators').users + // --------------------------------------------------------------------------- const UserSchema = mongoose.Schema({ password: String, - username: String + username: String, + role: String }) -UserSchema.path('password').required(true) -UserSchema.path('username').required(true) +UserSchema.path('password').required(customUsersValidators.isUserPasswordValid) +UserSchema.path('username').required(customUsersValidators.isUserUsernameValid) +UserSchema.path('role').validate(customUsersValidators.isUserRoleValid) + +UserSchema.methods = { + toFormatedJSON: toFormatedJSON +} UserSchema.statics = { getByUsernameAndPassword: getByUsernameAndPassword, - list: list + list: list, + loadByUsername: loadByUsername } mongoose.model('User', UserSchema) // --------------------------------------------------------------------------- +function getByUsernameAndPassword (username, password) { + return this.findOne({ username: username, password: password }) +} + function list (callback) { return this.find(callback) } -function getByUsernameAndPassword (username, password) { - return this.findOne({ username: username, password: password }) +function loadByUsername (username, callback) { + return this.findOne({ username: username }, callback) +} + +function toFormatedJSON () { + return { + id: this._id, + username: this.username, + role: this.role + } } -- cgit v1.2.3