166 lines
3.9 KiB
TypeScript
166 lines
3.9 KiB
TypeScript
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<void> => {
|
|
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<void> => {
|
|
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<void> => {
|
|
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",
|
|
});
|
|
}
|
|
};
|