feat: add MongoDB search method, endpoints, and settings module
deploy-chabokan / deploy (push) Canceled after 0s

This commit is contained in:
2026-08-19 05:50:14 +03:30
parent 3829851566
commit acb2e5d623
18 changed files with 649 additions and 21 deletions
+2 -1
View File
@@ -47,7 +47,7 @@ exports.logoutUser = catchAsync(async (req, res, next) => {
})
exports.getAllUsers = catchAsync(async (req, res, next) => {
const users = await userService.getAllUsers()
const users = await userService.getAllUsers(req.query)
res.status(200).json({
status: 'success',
@@ -56,6 +56,7 @@ exports.getAllUsers = catchAsync(async (req, res, next) => {
})
})
exports.userGetSelf = catchAsync(async (req, res, next) => {
const user = req.user
if (!user) {
+11 -2
View File
@@ -159,10 +159,19 @@ const loginUser = async (email, password) => {
return { token: signToken(user._id), user }
}
const getAllUsers = async () => {
return User.find({}).populate('role').sort({ createdAt: -1 })
const getAllUsers = async (query = {}) => {
const mongoQuery = {}
const search = (query.search || query.query || '').trim()
if (search) {
mongoQuery.$or = [
{ name: { $regex: search, $options: 'i' } },
{ email: { $regex: search, $options: 'i' } },
]
}
return User.find(mongoQuery).populate('role').sort({ createdAt: -1 })
}
const getUser = async (userId) => {
const user = await User.findById(userId).populate('role')