feat: basic api setup and boilerplate
This commit is contained in:
66
backend/src/controllers/department.controller.js
Normal file
66
backend/src/controllers/department.controller.js
Normal file
@@ -0,0 +1,66 @@
|
||||
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"});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user