Files
gg-backend/backend/src/controllers/department.controller.js

120 lines
2.4 KiB
JavaScript
Raw Normal View History

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,
2026-03-16 17:55:55 +05:30
name: dep.name,
2026-03-12 14:15:44 +05:30
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 {
2026-03-17 13:56:46 +05:30
const {departmentId} = req.params;
2026-03-13 14:54:47 +05:30
const {name, para1, para2, para3, facilities, services} = req.body;
const department = await prisma.department.update({
2026-03-17 13:56:46 +05:30
where: {departmentId},
2026-03-13 14:54:47 +05:30
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);
2026-03-17 13:56:46 +05:30
return res.status(500).json({
success: false,
message: "Failed to update department",
});
2026-03-13 14:54:47 +05:30
}
};
export const deleteDepartment = async (req, res) => {
try {
2026-03-17 13:56:46 +05:30
const {departmentId} = req.params;
2026-03-13 14:54:47 +05:30
await prisma.department.delete({
2026-03-17 13:56:46 +05:30
where: {departmentId},
2026-03-13 14:54:47 +05:30
});
return res.status(200).json({
success: true,
message: "Department deleted successfully",
});
} catch (error) {
console.error(error);
2026-03-17 13:56:46 +05:30
return res.status(500).json({
success: false,
message: "Failed to delete department",
});
2026-03-13 14:54:47 +05:30
}
};