mirror of
https://github.com/wassname/talk.git
synced 2026-07-09 06:40:07 +08:00
Support pagination for search
This commit is contained in:
@@ -9,8 +9,8 @@ const {
|
||||
ROOT_URL
|
||||
} = require('../../../config');
|
||||
|
||||
// get a list of users.
|
||||
router.get('/', authorization.needed('ADMIN', 'MODERATOR'), async (req, res, next) => {
|
||||
|
||||
const {
|
||||
value = '',
|
||||
field = 'created_at',
|
||||
@@ -21,13 +21,20 @@ router.get('/', authorization.needed('ADMIN', 'MODERATOR'), async (req, res, nex
|
||||
|
||||
try {
|
||||
|
||||
const queryOpts = {
|
||||
sort: {[field]: (asc === 'true') ? 1 : -1},
|
||||
skip: (page - 1) * limit,
|
||||
limit
|
||||
};
|
||||
|
||||
let [result, count] = await Promise.all([
|
||||
UsersService
|
||||
.search(value)
|
||||
.sort({[field]: (asc === 'true') ? 1 : -1})
|
||||
.skip((page - 1) * limit)
|
||||
.limit(limit),
|
||||
UsersService.count()
|
||||
.sort(queryOpts.sort)
|
||||
.skip(queryOpts.skip)
|
||||
.limit(queryOpts.limit)
|
||||
.lean(),
|
||||
UsersService.search(value).count()
|
||||
]);
|
||||
|
||||
res.json({
|
||||
@@ -41,7 +48,6 @@ router.get('/', authorization.needed('ADMIN', 'MODERATOR'), async (req, res, nex
|
||||
} catch (e) {
|
||||
next(e);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
router.post('/:user_id/role', authorization.needed('ADMIN', 'MODERATOR'), async (req, res, next) => {
|
||||
|
||||
+2
-2
@@ -668,8 +668,8 @@ module.exports = class UsersService {
|
||||
* Returns a count of the current users.
|
||||
* @return {Promise}
|
||||
*/
|
||||
static count() {
|
||||
return UserModel.count();
|
||||
static count(query = {}) {
|
||||
return UserModel.count(query);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user