Updated the projects.ts controller

This commit is contained in:
Mathias Wagner 2023-08-03 12:34:37 +02:00
parent 69fef9b9b5
commit e5190ae82b
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

View File

@ -1,9 +1,10 @@
import { IProject, Project } from "@models/Project";
import { IProject, IProjectPlan, Project } from "@models/Project";
import { encryptClearField } from "@utils/decryption";
import { Types } from "mongoose";
import crypto from "crypto";
import { IKeyRole } from "@models/AccessKey";
import { Member } from "@models/Member";
import { planLimits } from "../limits/plans";
export const checkProjectAccess = (requiredPermission: IKeyRole) => async (userId: string, projectId: string) => {
if (!Types.ObjectId.isValid(projectId))
@ -50,8 +51,11 @@ export const getProject = async (projectId: string, userId: string) => {
};
export const createProject = async (name: string, userId: string) => {
const count = await Project.countDocuments({ creatorId: encryptClearField(userId) });
if (count > 5) return { code: 95, message: "You have exceeded the project limit" };
const count = await Project.countDocuments({ creatorId: encryptClearField(userId),
plan: encryptClearField(IProjectPlan.PERSONAL) });
if (count > planLimits["account"].FREE_PROJECTS) return { code: 95, message: "You have exceeded the free project limit" };
if (count > 100) return { code: 95, message: "You have exceeded the project limit" };
await Project.create({ name, creatorId: userId });
};