Refactored schemas, naming, and instantiation files.
This commit is contained in:
@@ -7,32 +7,20 @@ const Types = mongoose.Schema.Types;
|
||||
|
||||
const userSchema = new mongoose.Schema({
|
||||
email: {
|
||||
value: {
|
||||
type: String,
|
||||
required: true,
|
||||
minlength: 1,
|
||||
trim: true,
|
||||
unique: true,
|
||||
validate: {
|
||||
validator: validator.isEmail,
|
||||
message: "String not email.",
|
||||
}
|
||||
},
|
||||
public: { type: Boolean, required: true, default: false }
|
||||
},
|
||||
firstName: {
|
||||
value: { type: String, required: true, trim: true },
|
||||
public: { type: Boolean, required: true, default: false }
|
||||
},
|
||||
lastName: {
|
||||
value: { type: String, required: true, trim: true },
|
||||
public: { type: Boolean, required: true, default: false }
|
||||
type: String,
|
||||
required: true,
|
||||
minlength: 1,
|
||||
trim: true,
|
||||
unique: true,
|
||||
validate: {
|
||||
validator: validator.isEmail,
|
||||
message: "String not email.",
|
||||
}
|
||||
},
|
||||
firstName: { type: String, required: true, trim: true },
|
||||
lastName: { type: String, required: true, trim: true },
|
||||
joinDate: { type: Date, default: Date.now, required: true },
|
||||
phone: {
|
||||
value: { type: Number, required: false, min: 0 },
|
||||
public: { type: Boolean, required: true, default: false }
|
||||
},
|
||||
phone: { type: Number, required: false, min: 0 },
|
||||
password: {
|
||||
type: String,
|
||||
required: true,
|
||||
@@ -40,16 +28,17 @@ const userSchema = new mongoose.Schema({
|
||||
// TODO: Custom validator for password requirements?
|
||||
},
|
||||
createdMatches: { type: [{ type: Types.ObjectId, ref: ModelNameRegister.Match }], required: true, default: [] },
|
||||
participatingMatches: {
|
||||
value: { type: [{ type: Types.ObjectId, ref: ModelNameRegister.Match }], required: true, default: [] },
|
||||
public: { type: Boolean, required: true, default: false }
|
||||
},
|
||||
accessLevel: { type: Number, required: true, default: 0 }
|
||||
participatingMatches: { type: [{ type: Types.ObjectId, ref: ModelNameRegister.Match }], required: true, default: [] },
|
||||
emailPublicity: { type: Number, required: true, default: 0 },
|
||||
bioPublicity: { type: Boolean, required: true, default: false },
|
||||
phonePublicity: { type: Boolean, required: true, default: false },
|
||||
participatingMatchesPublicity: { type: Boolean, required: true, default: false },
|
||||
accessLevel: { type: Number, required: true, default: 0 },
|
||||
});
|
||||
|
||||
userSchema.statics.credentialsExist = async function (email, password) {
|
||||
let userModel = this;
|
||||
let user = await userModel.findOne({ "email.value": email });
|
||||
let user = await userModel.findOne({ email: email });
|
||||
if (!user) {
|
||||
return Promise.reject(new Error("Credentials do not exist."));
|
||||
}
|
Reference in New Issue
Block a user