From e5190ae82bbd32b4c820eb228cd10fd35e350eae Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Thu, 3 Aug 2023 12:34:37 +0200 Subject: [PATCH] Updated the projects.ts controller --- src/controller/projects.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/controller/projects.ts b/src/controller/projects.ts index 5299b13..c4eb113 100644 --- a/src/controller/projects.ts +++ b/src/controller/projects.ts @@ -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 }); };