From c118f4bdd597c995b8915a586384ca2b46452895 Mon Sep 17 00:00:00 2001 From: Jeremiah-Ropo Date: Wed, 16 Nov 2022 15:08:24 +0100 Subject: [PATCH 1/2] changes: user model. battery low --- src/model/user.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/model/user.js diff --git a/src/model/user.js b/src/model/user.js new file mode 100644 index 0000000..3eb7bbb --- /dev/null +++ b/src/model/user.js @@ -0,0 +1,44 @@ +const bcrypt = require("bcrypt"); +const { BCRYPT_SALT } = process.env; +const mongoose = require("mongoose"); + +const UserSchema = new mongoose.Schema( + { + username: { + type: String, + trim: true, + required: [true, "Username is required"], + }, + // signup_type : { + // type : String, + // trim : true, + // enum : ["email", "third-party"], + // default : "email", + // required : true + // }, + email: { + type: String, + trim: true, + unique: true, + required: [true, "Email is required"], + }, + password: { + type: String, + }, + }, + { + timestamps: true + } +); + +UserSchema.pre("save", async function (next) { + if (!this.isModified('password')) return next() + + const hash = await bcrypt.hash(this.password, parseInt(BCRYPT_SALT)); + this.password = hash; + + next(); +}); + +// Export the model +module.exports = mongoose.model("User", UserSchema); From 9fd46bbcb9d35e8877c41c8267c37f9b2031dc40 Mon Sep 17 00:00:00 2001 From: Jeremiah-Ropo Date: Thu, 17 Nov 2022 03:29:31 +0100 Subject: [PATCH 2/2] changes: worked on model. --- src/model/events.js | 38 ++++++++++++++++++++++++++++++++++++++ src/model/participate.js | 33 +++++++++++++++++++++++++++++++++ src/model/user.js | 18 +++++++++--------- 3 files changed, 80 insertions(+), 9 deletions(-) create mode 100644 src/model/events.js create mode 100644 src/model/participate.js diff --git a/src/model/events.js b/src/model/events.js new file mode 100644 index 0000000..5b371a2 --- /dev/null +++ b/src/model/events.js @@ -0,0 +1,38 @@ + +const mongoose = require("mongoose"); + +const EventSchema = new mongoose.Schema( + { + title: { + type: String, + trim: true, + }, + eventDate : { + type : Date, + required : false + }, + proposedStartDate: { + type: Date, + required: true, + }, + proposedEndDate: { + type: Date, + required:true + }, + hostProposedEndDate: { + type: Date, + required:true + }, + hostProposedEndDate: { + type: Date, + required:true + }, + }, + { + timestamps: true + } +); + + +// Export the model +module.exports = mongoose.model("Event", EventSchema); \ No newline at end of file diff --git a/src/model/participate.js b/src/model/participate.js new file mode 100644 index 0000000..be87e0f --- /dev/null +++ b/src/model/participate.js @@ -0,0 +1,33 @@ + +const mongoose = require("mongoose"); + +const ParticipateSchema = new mongoose.Schema( + { + + event_id: { + type: mongoose.Types, + ref: 'Event', + required: true + }, + eventType: { + type: String, + trim: true, + }, + proposedStartDate: { + type: Date, + required: true, + }, + proposedEndDate: { + type: Date, + required: true + }, + + }, + { + timestamps: true + } +); + + +// Export the model +module.exports = mongoose.model("Participate", ParticipateSchema); \ No newline at end of file diff --git a/src/model/user.js b/src/model/user.js index 3eb7bbb..fba6c17 100644 --- a/src/model/user.js +++ b/src/model/user.js @@ -4,18 +4,18 @@ const mongoose = require("mongoose"); const UserSchema = new mongoose.Schema( { - username: { + goggleId: { type: String, trim: true, - required: [true, "Username is required"], + required: false, + }, + signup_type : { + type : String, + trim : true, + enum : ["email", "third-party"], + default : "email", + required : true }, - // signup_type : { - // type : String, - // trim : true, - // enum : ["email", "third-party"], - // default : "email", - // required : true - // }, email: { type: String, trim: true,