diff --git a/src/api-server/V1/v1Controllers/projectController/v1projectController.ts b/src/api-server/V1/v1Controllers/projectController/v1projectController.ts index 8e283fb..49cc9ed 100644 --- a/src/api-server/V1/v1Controllers/projectController/v1projectController.ts +++ b/src/api-server/V1/v1Controllers/projectController/v1projectController.ts @@ -66,14 +66,14 @@ export const GetProjects = async ( res: Response ): Promise => { try { - const { userId, organization, role } = req.user || {}; - if (!userId || !organization || !role) { + const { userId, organization } = req.user || {}; + if (!userId || !organization) { res.status(400).json({ message: "All fields are required", }); return; } - const result = await GetAllProjects({ userId, organization, role }); + const result = await GetAllProjects({ userId, organization }); switch (result?.status) { case "User not found": res.status(404).json({ @@ -158,7 +158,7 @@ export const updateProjectController = async ( const { userId, organization, role } = req.user || {}; const { projectId } = req.params; const { projectName, thumbnail } = req.body; - if (!userId || !organization || !projectId || !role) { + if (!userId || !organization || !projectId) { res.status(400).json({ message: "All fields are required", }); @@ -170,7 +170,6 @@ export const updateProjectController = async ( userId, projectName, thumbnail, - role, }); switch (result?.status) { case "Project not found": @@ -215,7 +214,7 @@ export const ViewData = async ( const { projectId } = req.params as { projectId: string; }; - if (!userId || !organization || !projectId || !role) { + if (!userId || !organization || !projectId) { res.status(400).json({ message: "All fields are required", }); @@ -225,7 +224,6 @@ export const ViewData = async ( projectId, organization, userId, - role, }); switch (result?.status) { case "Project not found": diff --git a/src/api-server/V1/v1Controllers/trashController/v1trashController.ts b/src/api-server/V1/v1Controllers/trashController/v1trashController.ts index 7c89266..53ea086 100644 --- a/src/api-server/V1/v1Controllers/trashController/v1trashController.ts +++ b/src/api-server/V1/v1Controllers/trashController/v1trashController.ts @@ -12,13 +12,13 @@ export const GetTrashList = async ( ): Promise => { try { const { organization, role, userId } = req.user || {}; - if (!organization || !role || !userId) { + if (!organization || !userId) { res.status(400).json({ message: "All fields are required", }); return; } - const result = await TrashDatas({ organization, role, userId }); + const result = await TrashDatas({ organization, userId }); switch (result.status) { case "User not found": @@ -60,7 +60,7 @@ export const RestoreTrash = async ( const { projectId } = req.query as { projectId: string; }; - if (!organization || !projectId || !role || !userId) { + if (!organization || !projectId || !userId) { res.status(400).json({ message: "All fields are required", }); @@ -69,7 +69,6 @@ export const RestoreTrash = async ( const result = await RestoreTrashData({ organization, projectId, - role, userId, }); @@ -116,7 +115,7 @@ export const DeleteTrashData = async ( const { projectId } = req.query as { projectId: string; }; - if (!organization || !projectId || !role || !userId) { + if (!organization || !projectId || !userId) { res.status(400).json({ message: "All fields are required", }); @@ -125,7 +124,6 @@ export const DeleteTrashData = async ( const result = await TrashDelete({ organization, projectId, - role, userId, }); diff --git a/src/api-server/V1/v1Controllers/versionController/versioncontroller.ts b/src/api-server/V1/v1Controllers/versionController/versioncontroller.ts index c6002c4..641334a 100644 --- a/src/api-server/V1/v1Controllers/versionController/versioncontroller.ts +++ b/src/api-server/V1/v1Controllers/versionController/versioncontroller.ts @@ -13,7 +13,7 @@ export const versionAddcontroller = async ( ): Promise => { try { const { organization, role, userId } = req.user || {}; - if (!organization || !role || !userId) { + if (!organization || !userId) { res.status(400).json({ message: "All fields are required", }); @@ -69,7 +69,7 @@ export const GetversionList = async ( ): Promise => { try { const { organization, role, userId } = req.user || {}; - if (!organization || !role || !userId) { + if (!organization || !userId) { res.status(400).json({ message: "All fields are required", }); @@ -121,7 +121,7 @@ export const rollbackcontroller = async ( ): Promise => { try { const { organization, role, userId } = req.user || {}; - if (!organization || !role || !userId) { + if (!organization || !userId) { res.status(400).json({ message: "All fields are required", }); @@ -176,7 +176,7 @@ export const GetversionHistory = async ( ): Promise => { try { const { organization, role, userId } = req.user || {}; - if (!organization || !role || !userId) { + if (!organization || !userId) { res.status(400).json({ message: "All fields are required", }); diff --git a/src/shared/services/Thread/ThreadService.ts b/src/shared/services/Thread/ThreadService.ts index b4e9439..8efb7d9 100644 --- a/src/shared/services/Thread/ThreadService.ts +++ b/src/shared/services/Thread/ThreadService.ts @@ -8,6 +8,7 @@ import { interface IThread { projectId: string; + isArchive?: boolean; versionId: string; state: string; commentId: string; @@ -48,7 +49,7 @@ export const createThread = async (data: IThread) => { threadTitle, organization, } = data; - console.log('data;: ', data); + const userExisting = await existingUser(userId, organization); if (!userExisting) { return { @@ -80,7 +81,6 @@ export const createThread = async (data: IThread) => { isArchive: false, createdAt: Date.now(), }); - console.log('newThread: ', newThread); const responseData = { _id: newThread._id, projectId: newThread.projectId, @@ -88,7 +88,6 @@ export const createThread = async (data: IThread) => { state: newThread.state, createdBy: newThread.createdBy, createdAt: newThread.createdAt, - isArchive: newThread.isArchive, position: newThread.position, rotation: newThread.rotation, threadTitle: newThread.threadTitle, @@ -129,14 +128,25 @@ export const deleteThread = async (data: IThread) => { const findThreadId = await ThreadModel(organization).findOne({ _id: threadId, createdBy: userId, + isArchive: false, + versionId, + projectId, }); if (!findThreadId) { return { status: "can't deleted" }; } - const deleteThread = await ThreadModel(organization).findOneAndUpdate( - { _id: threadId, createdBy: userId }, - { isArchive: true } - ); + const deleteThread = await ThreadModel(organization) + .findOneAndUpdate( + { + _id: threadId, + createdBy: userId, + versionId, + projectId, + isArchive: false, + }, + { isArchive: true } + ) + .select("-isArchive -__v"); return { status: "Success", data: deleteThread, @@ -158,6 +168,7 @@ export const updateThreadTitle = async (data: IThread) => { threadId, commentId, } = data; + console.log("data: ", data); const userExisting = await existingUser(userId, organization); if (!userExisting) { @@ -179,19 +190,26 @@ export const updateThreadTitle = async (data: IThread) => { versionId ); if (!ExistingVersion) return { status: "Version Data not found" }; - const findThreadId = await ThreadModel(organization).findById(threadId); + const findThreadId = await ThreadModel(organization).findById({ + _id: threadId, + isArchive: false, + }); if (findThreadId) { - const updateThread = await ThreadModel(organization).findOneAndUpdate( - { - _id: threadId, - createdBy: userId, - }, - { threadTitle: threadTitle }, - { - new: true, - } - ); - + const updateThread = await ThreadModel(organization) + .findOneAndUpdate( + { + _id: threadId, + isArchive: false, + versionId, + projectId, + createdBy: userId, + }, + { threadTitle: threadTitle }, + { + new: true, + } + ) + .select("-isArchive -__v"); return { status: "Success", data: updateThread, @@ -234,23 +252,31 @@ export const addComments = async (data: IThread) => { versionId ); if (!ExistingVersion) return { status: "Version Data not found" }; - const findThreadId = await ThreadModel(organization).findById(threadId); + const findThreadId = await ThreadModel(organization).findById({ + _id: threadId, + isArchive: false, + }); if (commentId) { - const updated = await ThreadModel(organization).findOneAndUpdate( - { - _id: threadId, - "comments._id": commentId, - }, - { - $set: { - "comments.$.comment": comment, - "comments.$.createdAt": Date.now(), + const updated = await ThreadModel(organization) + .findOneAndUpdate( + { + _id: threadId, + isArchive: false, + versionId, + projectId, + "comments._id": commentId, }, - }, - { - new: true, - } - ); + { + $set: { + "comments.$.comment": comment, + "comments.$.createdAt": Date.now(), + }, + }, + { + new: true, + } + ) + .select("-isArchive -__v"); if (updated) { const updatedComment = updated?.comments?.find( @@ -312,6 +338,8 @@ export const deleteComments = async (data: IThread) => { if (!ExistingVersion) return { status: "Version Data not found" }; const findThreadId = await ThreadModel(organization).findOne({ _id: threadId, + versionId, + projectId, }); if (!findThreadId) { return { status: "thread not found" }; @@ -320,6 +348,9 @@ export const deleteComments = async (data: IThread) => { const deleted = await ThreadModel(organization).findOneAndUpdate( { _id: threadId, + isArchive: false, + versionId, + projectId, "comments._id": commentId, }, { @@ -328,7 +359,7 @@ export const deleteComments = async (data: IThread) => { }, }, { - new: true, // returns the updated document + new: true, } ); return { diff --git a/src/shared/services/v1Project/v1projectservice.ts b/src/shared/services/v1Project/v1projectservice.ts index be409f5..e885afd 100644 --- a/src/shared/services/v1Project/v1projectservice.ts +++ b/src/shared/services/v1Project/v1projectservice.ts @@ -42,12 +42,10 @@ interface UpdateProjectInput { thumbnail?: string; sharedUsers?: string[]; organization: string; - role: string; } interface GetProjectsInterface { userId: string; organization: string; - role: string; } interface ProjectDelInterface { projectId: string; @@ -58,7 +56,6 @@ interface ProjectInterface { projectId: string; userId: string; organization: string; - role: string; } interface RoleFilter { isArchive: boolean; diff --git a/src/shared/services/v1trash/v1trashservice.ts b/src/shared/services/v1trash/v1trashservice.ts index 1b2bb5b..e274b27 100644 --- a/src/shared/services/v1trash/v1trashservice.ts +++ b/src/shared/services/v1trash/v1trashservice.ts @@ -2,13 +2,11 @@ import projectModel from "../../V1Models/Project/project-model.ts"; import { existingUser } from "../helpers/v1projecthelperFns.ts"; interface IOrg { organization: string; - role: string; userId: string; } interface IRestore { projectId: string; organization: string; - role: string; userId: string; } interface RoleFilter { diff --git a/src/socket-server/controllers/thread/threadController.ts b/src/socket-server/controllers/thread/threadController.ts index 70d2ece..9ba5cdc 100644 --- a/src/socket-server/controllers/thread/threadController.ts +++ b/src/socket-server/controllers/thread/threadController.ts @@ -122,6 +122,7 @@ export const deleteThreadHandleEvent = async ( } const result = await deleteThread(data); + console.log("result: ", result); const status = typeof result?.status === "string" ? result.status : "unknown"; const messages: Record = { @@ -143,6 +144,7 @@ export const deleteThreadHandleEvent = async ( messages, threadDatas ); + emitToSenderAndAdmins( io, socket,