From a6f5c96f93bdb2d68eb313dac8105d5d101e06c1 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Mon, 26 Aug 2024 10:23:05 -0700 Subject: [PATCH] Create team on superadmin create --- Server/db/mongo/modules/userModule.js | 13 +++++++++++++ Server/models/Team.js | 18 +++++++++++------- Server/models/user.js | 5 +++++ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/Server/db/mongo/modules/userModule.js b/Server/db/mongo/modules/userModule.js index 3dacfd943..bc2f83958 100644 --- a/Server/db/mongo/modules/userModule.js +++ b/Server/db/mongo/modules/userModule.js @@ -1,4 +1,5 @@ const UserModel = require("../../../models/user"); +const TeamModel = require("../../../models/Team"); const { errorMessages } = require("../../../utils/messages"); const { GenerateAvatarImage } = require("../../../utils/imageProcessing"); @@ -27,7 +28,19 @@ const insertUser = async (req, res) => { const avatar = await GenerateAvatarImage(req.file); userData.avatarImage = avatar; } + + let teamId; + // Is user superadmin? If so, create team + if (userData.role.includes("superadmin")) { + const team = new TeamModel({ + email: userData.email, + }); + teamId = team._id; + await team.save(); + } + const newUser = new UserModel(userData); + newUser.teamId = teamId; await newUser.save(); return await UserModel.findOne({ _id: newUser._id }) .select("-password") diff --git a/Server/models/Team.js b/Server/models/Team.js index 33c81f10b..25e1f9b22 100644 --- a/Server/models/Team.js +++ b/Server/models/Team.js @@ -1,12 +1,16 @@ const mongoose = require("mongoose"); -const TeamSchema = mongoose.Schema({ - userId: { - type: mongoose.Schema.Types.ObjectId, - ref: "User", - immutable: true, +const TeamSchema = mongoose.Schema( + { + email: { + type: String, + required: true, + unique: true, + }, }, - timestamps: true, -}); + { + timestamps: true, + } +); module.exports = mongoose.model("Team", TeamSchema); diff --git a/Server/models/user.js b/Server/models/user.js index 73567798c..a6045547d 100644 --- a/Server/models/user.js +++ b/Server/models/user.js @@ -40,6 +40,11 @@ const UserSchema = mongoose.Schema( default: "user", enum: ["user", "admin", "superadmin"], }, + teamId: { + type: mongoose.Schema.Types.ObjectId, + ref: "Team", + immutable: true, + }, }, { timestamps: true,