Files
intelaide/intelaide-backend/controllers/userController.js
2026-01-20 04:54:10 +00:00

68 lines
2.1 KiB
JavaScript

// backend/controllers/userController.js
import User from '../models/User.js';
export const getCurrentUser = async (req, res) => {
// console.log('User controller: Fetching user with ID:', req.userId);
try {
const user = await User.findById(req.userId);
if (!user) {
return res.status(404).json({ message: 'User not found.' });
}
res.json({
first_name: user.first_name,
last_name: user.last_name,
email: user.email,
});
} catch (error) {
console.error('Error fetching user:', error.message);
res.status(500).json({ message: 'Error fetching user information' });
}
};
export const getUserById = async (req, res) => {
const { id } = req.params;
try {
const user = await User.findById(id);
if (!user) {
return res.status(404).json({ message: 'User not found' });
}
// Remove sensitive data before sending the response
delete user.password_hash;
res.json(user);
} catch (error) {
console.error('Error retrieving user by ID:', error.message);
res.status(500).json({ message: 'Error retrieving user. Please try again later.' });
}
};
export const getUserByEmail = async (req, res) => {
const { email } = req.params;
try {
const user = await User.findByEmail(email);
if (!user) {
return res.status(404).json({ message: 'User not found' });
}
// Remove sensitive data before sending the response
delete user.password_hash;
res.json(user);
} catch (error) {
console.error('Error retrieving user by email:', error.message);
res.status(500).json({ message: 'Error retrieving user. Please try again later.' });
}
};
export const getAllUsers = async (req, res) => {
try {
const users = await User.getAllUsers();
if (!users.length) {
return res.status(404).json({ message: 'No users found' });
}
users.forEach((user) => delete user.password_hash);
res.json(users);
} catch (error) {
console.error('Error retrieving all users:', error.message);
res.status(500).json({ message: 'Error retrieving users. Please try again later.' });
}
};