EDMS/server/api/department/[id]/users.get.js
2025-05-31 16:58:30 +08:00

80 lines
1.7 KiB
JavaScript

import prisma from "../../../utils/prisma";
export default defineEventHandler(async (event) => {
try {
// Get department ID from route
const departmentId = parseInt(event.context.params.id);
if (isNaN(departmentId)) {
return {
statusCode: 400,
message: "Invalid department ID"
};
}
// Check if department exists
const department = await prisma.department.findUnique({
where: {
dp_id: departmentId
}
});
if (!department) {
return {
statusCode: 404,
message: "Department not found"
};
}
// Get users for this department
const users = await prisma.user.findMany({
where: {
dp_id: departmentId
},
orderBy: {
userFullName: 'asc'
},
select: {
userID: true,
userUsername: true,
userFullName: true,
userEmail: true,
userPhone: true,
userStatus: true,
userCreatedDate: true,
userModifiedDate: true,
userrole: {
select: {
userRoleID: true,
role: {
select: {
roleID: true,
roleName: true
}
}
}
}
}
});
return {
statusCode: 200,
data: users,
meta: {
department: {
dp_id: department.dp_id,
dp_name: department.dp_name
},
total: users.length
}
};
} catch (error) {
console.error("Error fetching users by department:", error);
return {
statusCode: 500,
message: "Internal server error",
error: error.message
};
}
});