Create team on superadmin create

This commit is contained in:
Alex Holliday
2024-08-26 10:23:05 -07:00
parent 4c2cc6fb2c
commit a6f5c96f93
3 changed files with 29 additions and 7 deletions

View File

@@ -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")

View File

@@ -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);

View File

@@ -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,