import { Response } from "express"; import { TrashDatas, RestoreTrashData, TrashDelete, } from "../../../../shared/services/v1trash/v1trashservice.ts"; import { AuthenticatedRequest } from "../../../../shared/utils/token.ts"; export const GetTrashList = async ( req: AuthenticatedRequest, res: Response ): Promise => { try { const { organization, role, userId } = req.user || {}; if (!organization || !role || !userId) { res.status(400).json({ message: "All fields are required", }); return; } const result = await TrashDatas({ organization, role, userId }); switch (result.status) { case "User not found": res.status(404).json({ message: "User not found", }); break; case "Trash is Empty": res.status(200).json({ message: "Trash is Empty", TrashDatas: [], }); break; case "Success": res.status(200).json({ TrashDatas: result.ListDatas, }); break; default: res.status(500).json({ message: "Internal server error", }); break; } } catch (error) { res.status(500).json({ message: "Unknown error", }); } }; export const RestoreTrash = async ( req: AuthenticatedRequest, res: Response ): Promise => { try { const { organization, role, userId } = req.user || {}; const { projectId } = req.query as { projectId: string; }; if (!organization || !projectId || !role || !userId) { res.status(400).json({ message: "All fields are required", }); return; } const result = await RestoreTrashData({ organization, projectId, role, userId, }); switch (result.status) { case "User not found": res.status(404).json({ message: "User not found", }); break; case "Project not found": res.status(404).json({ message: "Project not found", }); break; case "Project Restore unsuccessfull": res.status(200).json({ message: "Project Restore unsuccessfull", }); break; case "Project Restored successfully": res.status(200).json({ message: "Project Restored successfully", }); break; default: res.status(500).json({ message: "Internal server error", }); break; } } catch (error) { console.log("error: ", error); res.status(500).json({ message: "Unknown error", }); } }; export const DeleteTrashData = async ( req: AuthenticatedRequest, res: Response ): Promise => { try { const { organization, role, userId } = req.user || {}; const { projectId } = req.query as { projectId: string; }; if (!organization || !projectId || !role || !userId) { res.status(400).json({ message: "All fields are required", }); return; } const result = await TrashDelete({ organization, projectId, role, userId, }); switch (result.status) { case "User not found": res.status(404).json({ message: "User not found", }); break; case "Project not found": res.status(404).json({ message: "Project not found", }); break; case "Project Already Deleted": res.status(200).json({ message: "Project Already Deleted", }); break; case "Success": res.status(200).json({ message: "Trash Project Delete successfully", }); break; default: res.status(500).json({ message: "Internal server error", }); break; } } catch (error) { console.log("error: ", error); res.status(500).json({ message: "Unknown error", }); } };