feat: implement sorting and visibility changes

This commit is contained in:
Kailasdevdas
2026-05-11 00:04:22 +05:30
parent 9aaf1879a8
commit 1717507555
12 changed files with 335 additions and 112 deletions
@@ -2,8 +2,11 @@ import prisma from "../prisma/client.js";
export const getAllDepartments = async (req, res) => {
try {
const {admin} = req.query;
const departments = await prisma.department.findMany({
orderBy: {name: "asc"},
where: admin === "true" ? {} : {isActive: true},
orderBy: [{sortOrder: "asc"}, {name: "asc"}],
});
const response = departments.map((dep) => ({
@@ -15,6 +18,8 @@ export const getAllDepartments = async (req, res) => {
para3: dep.para3 ?? "",
facilities: dep.facilities ?? "",
services: dep.services ?? "",
isActive: dep.isActive,
sortOrder: dep.sortOrder,
}));
return res.status(200).json({
@@ -44,13 +49,14 @@ export const getDepartmentByName = async (req, res) => {
const department = await prisma.department.findFirst({
where: {
name: name,
isActive: true,
},
});
if (!department) {
return res.status(404).json({
success: false,
message: "Department not found",
message: "Department not found or inactive",
});
}
@@ -63,6 +69,8 @@ export const getDepartmentByName = async (req, res) => {
para3: department.para3 ?? "",
facilities: department.facilities ?? "",
services: department.services ?? "",
isActive: department.isActive,
sortOrder: department.sortOrder,
};
return res.status(200).json({
@@ -89,6 +97,8 @@ export async function createDepartment(req, res) {
para3,
facilities,
services,
isActive,
sortOrder,
} = req.body;
if (!departmentId || !name) {
@@ -107,6 +117,8 @@ export async function createDepartment(req, res) {
para3,
facilities,
services,
isActive: isActive !== undefined ? isActive : true,
sortOrder: sortOrder !== undefined ? Number(sortOrder) : 0,
},
});
@@ -118,7 +130,7 @@ export async function createDepartment(req, res) {
if (error.code === "P2002") {
return res.status(409).json({error: "Department already exists"});
}
console.error(error);
res.status(500).json({error: "Failed to create department"});
}
}
@@ -126,20 +138,15 @@ export async function createDepartment(req, res) {
export const updateDepartment = async (req, res) => {
try {
const {departmentId} = req.params;
const updateData = {...req.body};
const {name, image, para1, para2, para3, facilities, services} = req.body;
if (updateData.sortOrder !== undefined) {
updateData.sortOrder = Number(updateData.sortOrder);
}
const department = await prisma.department.update({
where: {departmentId},
data: {
name,
image,
para1,
para2,
para3,
facilities,
services,
},
data: updateData,
});
return res.status(200).json({