brainlet/models/User.js

42 lines
963 B
JavaScript
Raw Normal View History

const config = require('../config');
2020-10-05 20:36:03 +03:00
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
2020-10-05 20:36:03 +03:00
username: String,
password: String,
email: String,
role: String
});
userSchema.method('getPublicObject', function() {
return {
username: this.username,
permissionLevel: config.roleMap[this.role],
role: this.role,
_id: this._id
}
});
userSchema.method('getFullObject', function() {
return {
username: this.username,
password: this.password,
email: this.email,
permissionLevel: config.roleMap[this.role],
role: this.role,
_id: this._id
}
});
const User = mongoose.model('User', userSchema);
2020-10-05 20:36:03 +03:00
User.findByUsername = async function(username) {
return await User.findOne({ username }).exec();
};
User.getPulicFields = function() {
return 'username role _id';
};
2020-10-05 20:36:03 +03:00
module.exports = User;