68 lines
2.1 KiB
JavaScript
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.' });
|
|
}
|
|
};
|
|
|