2026-03-12 14:15:44 +05:30
|
|
|
import prisma from "../prisma/client.js";
|
|
|
|
|
|
|
|
|
|
export const getAllDepartments = async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const departments = await prisma.department.findMany({
|
|
|
|
|
orderBy: {name: "asc"},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const response = departments.map((dep) => ({
|
|
|
|
|
departmentId: dep.departmentId,
|
|
|
|
|
Department: dep.name,
|
|
|
|
|
para1: dep.para1 ?? "",
|
|
|
|
|
para2: dep.para2 ?? "",
|
|
|
|
|
para3: dep.para3 ?? "",
|
|
|
|
|
facilities: dep.facilities ?? "",
|
|
|
|
|
services: dep.services ?? "",
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
return res.status(200).json({
|
|
|
|
|
success: true,
|
|
|
|
|
data: response,
|
|
|
|
|
});
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error(error);
|
|
|
|
|
return res.status(500).json({
|
|
|
|
|
success: false,
|
|
|
|
|
message: "Failed to fetch departments",
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export async function createDepartment(req, res) {
|
|
|
|
|
try {
|
|
|
|
|
const {departmentId, name, para1, para2, para3, facilities, services} =
|
|
|
|
|
req.body;
|
|
|
|
|
|
|
|
|
|
if (!departmentId || !name) {
|
|
|
|
|
return res
|
|
|
|
|
.status(400)
|
|
|
|
|
.json({error: "departmentId and name are required"});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const department = await prisma.department.create({
|
|
|
|
|
data: {
|
|
|
|
|
departmentId,
|
|
|
|
|
name,
|
|
|
|
|
para1,
|
|
|
|
|
para2,
|
|
|
|
|
para3,
|
|
|
|
|
facilities,
|
|
|
|
|
services,
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
res.status(201).json({
|
|
|
|
|
message: "Department created successfully",
|
|
|
|
|
data: department,
|
|
|
|
|
});
|
|
|
|
|
} catch (error) {
|
|
|
|
|
if (error.code === "P2002") {
|
|
|
|
|
return res.status(409).json({error: "Department already exists"});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
res.status(500).json({error: "Failed to create department"});
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-03-13 14:54:47 +05:30
|
|
|
|
|
|
|
|
export const updateDepartment = async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const {id} = req.params;
|
|
|
|
|
|
|
|
|
|
const {name, para1, para2, para3, facilities, services} = req.body;
|
|
|
|
|
|
|
|
|
|
const department = await prisma.department.update({
|
|
|
|
|
where: {id: Number(id)},
|
|
|
|
|
data: {
|
|
|
|
|
name,
|
|
|
|
|
para1,
|
|
|
|
|
para2,
|
|
|
|
|
para3,
|
|
|
|
|
facilities,
|
|
|
|
|
services,
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return res.status(200).json({
|
|
|
|
|
success: true,
|
|
|
|
|
message: "Department updated successfully",
|
|
|
|
|
data: department,
|
|
|
|
|
});
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error(error);
|
|
|
|
|
return res
|
|
|
|
|
.status(500)
|
|
|
|
|
.json({success: false, message: "Failed to update department"});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const deleteDepartment = async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const {id} = req.params;
|
|
|
|
|
|
|
|
|
|
await prisma.department.delete({
|
|
|
|
|
where: {id: Number(id)},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return res.status(200).json({
|
|
|
|
|
success: true,
|
|
|
|
|
message: "Department deleted successfully",
|
|
|
|
|
});
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error(error);
|
|
|
|
|
return res
|
|
|
|
|
.status(500)
|
|
|
|
|
.json({success: false, message: "Failed to delete department"});
|
|
|
|
|
}
|
|
|
|
|
};
|