From 5d8237419f093bdcf926b7178b79d7d7884b10a0 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 22 Jan 2023 01:06:07 +0100 Subject: [PATCH] Created the projects.ts controller --- src/controller/projects.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/controller/projects.ts diff --git a/src/controller/projects.ts b/src/controller/projects.ts new file mode 100644 index 0000000..7f7ea93 --- /dev/null +++ b/src/controller/projects.ts @@ -0,0 +1,22 @@ +import { Project } from "@models/Project"; +import { encryptClearField } from "@utils/decryption"; +import { Types } from "mongoose"; + +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" }; + + await Project.create({ name, creatorId: userId }); +}; + +export const deleteProject = async (id: string) => { + if (!Types.ObjectId.isValid(id)) + return { code: 3, message: "Invalid object id provided" }; + + const project = await Project.findById(id); + if (project === null) return { code: 5009, message: "The provided project id does not exist" }; + + // TODO: Delete all licenses, groups, permissions, .. + + await project.delete(); +}; \ No newline at end of file