Add user profile retrieval function

This commit is contained in:
Isuru Bimsara
2026-08-21 11:44:00 +05:30
parent 6a4fe852e5
commit 2a35d86ebf
4 changed files with 156 additions and 109 deletions
+61 -15
View File
@@ -30,6 +30,7 @@ const {
sendVerificationEmail,
deleteEmailVerification,
} = require("../utils/emailVerification.util");
const { getUserProfile } = require("../utils/users/userProfileDetails.util");
const User = db.User;
const Profile = db.Profile;
@@ -345,36 +346,81 @@ exports.getAllUsers = async (req, res) => {
}
};
// Get user details by ID
exports.getUserById = async (req, res) => {
try {
const { id } = req.params;
const user = await User.findOne({
where: { id },
attributes: { exclude: ["password"] },
include: [{ model: Profile, as: "profile" }],
});
//get user profile details
exports.userProfile = async (req, res) => {
if (!user) {
try {
const userId = req.user.id;
const profile =
await getUserProfile(userId);
if (!profile) {
return res.status(404).send({
success: false,
message: "User not found",
});
}
res.status(200).send({
return res.status(200).send({
success: true,
data: user,
message:
"User profile retrieved successfully",
data: profile,
});
} catch (error) {
res.status(500).send({
console.error(
"GET USER PROFILE ERROR:",
error
);
return res.status(500).send({
success: false,
message: "Failed to retrieve user",
error: error.message,
message:
"Failed to retrieve user profile",
});
}
};
// Get user details by ID
// exports.getUserById = async (req, res) => {
// try {
// const { id } = req.params;
// const user = await User.findOne({
// where: { id },
// attributes: { exclude: ["password"] },
// include: [{ model: Profile, as: "profile" }],
// });
// if (!user) {
// return res.status(404).send({
// success: false,
// message: "User not found",
// });
// }
// res.status(200).send({
// success: true,
// data: user,
// });
// } catch (error) {
// res.status(500).send({
// success: false,
// message: "Failed to retrieve user",
// error: error.message,
// });
// }
// };
// Update user details
exports.updateUser = async (req, res) => {
const transaction = await db.sequelize.transaction();