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

77 lines
1.6 KiB
JavaScript

import prisma from "../../utils/prisma";
export default defineEventHandler(async (event) => {
try {
// Get user ID from route
const id = parseInt(event.context.params.id);
if (isNaN(id)) {
return {
statusCode: 400,
message: "Invalid user ID"
};
}
// Get user with related data
const user = await prisma.user.findUnique({
where: {
userID: id
},
select: {
userID: true,
userUsername: true,
userFullName: true,
userEmail: true,
userPhone: true,
userStatus: true,
dp_id: true,
userCreatedDate: true,
userModifiedDate: true,
department: {
select: {
dp_id: true,
dp_name: true,
organization: {
select: {
org_id: true,
org_name: true
}
}
}
},
userrole: {
select: {
userRoleID: true,
role: {
select: {
roleID: true,
roleName: true,
roleDescription: true
}
}
}
}
}
});
if (!user) {
return {
statusCode: 404,
message: "User not found"
};
}
return {
statusCode: 200,
data: user
};
} catch (error) {
console.error("Error fetching user:", error);
return {
statusCode: 500,
message: "Internal server error",
error: error.message
};
}
});