|
@@ -9,6 +9,8 @@ const router = express.Router();
|
|
|
const { body } = require('express-validator/check');
|
|
const { body } = require('express-validator/check');
|
|
|
const { isEmail } = require('validator');
|
|
const { isEmail } = require('validator');
|
|
|
|
|
|
|
|
|
|
+const PAGE_ITEMS = 50;
|
|
|
|
|
+
|
|
|
const validator = {};
|
|
const validator = {};
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -17,7 +19,6 @@ const validator = {};
|
|
|
* name: Users
|
|
* name: Users
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
-
|
|
|
|
|
module.exports = (crowi) => {
|
|
module.exports = (crowi) => {
|
|
|
const loginRequiredStrictly = require('../../middleware/login-required')(crowi);
|
|
const loginRequiredStrictly = require('../../middleware/login-required')(crowi);
|
|
|
const adminRequired = require('../../middleware/admin-required')(crowi);
|
|
const adminRequired = require('../../middleware/admin-required')(crowi);
|
|
@@ -47,21 +48,27 @@ module.exports = (crowi) => {
|
|
|
* application/json:
|
|
* application/json:
|
|
|
* schema:
|
|
* schema:
|
|
|
* properties:
|
|
* properties:
|
|
|
- * users:
|
|
|
|
|
- * type: object
|
|
|
|
|
- * description: a result of `Users.find`
|
|
|
|
|
|
|
+ * paginateResult:
|
|
|
|
|
+ * $ref: '#/components/schemas/PaginateResult'
|
|
|
*/
|
|
*/
|
|
|
router.get('/', loginRequiredStrictly, adminRequired, async(req, res) => {
|
|
router.get('/', loginRequiredStrictly, adminRequired, async(req, res) => {
|
|
|
|
|
+ const page = parseInt(req.query.page) || 1;
|
|
|
|
|
+
|
|
|
try {
|
|
try {
|
|
|
- const page = parseInt(req.query.page) || 1;
|
|
|
|
|
- const result = await User.findUsersWithPagination({ page });
|
|
|
|
|
- const { docs: users, total: totalUsers, limit: pagingLimit } = result;
|
|
|
|
|
- return res.apiv3({ users, totalUsers, pagingLimit });
|
|
|
|
|
|
|
+ const paginateResult = await User.paginate(
|
|
|
|
|
+ { status: { $ne: User.STATUS_DELETED } },
|
|
|
|
|
+ {
|
|
|
|
|
+ sort: { status: 1, username: 1, createdAt: 1 },
|
|
|
|
|
+ page,
|
|
|
|
|
+ limit: PAGE_ITEMS,
|
|
|
|
|
+ },
|
|
|
|
|
+ );
|
|
|
|
|
+ return res.apiv3({ paginateResult });
|
|
|
}
|
|
}
|
|
|
catch (err) {
|
|
catch (err) {
|
|
|
const msg = 'Error occurred in fetching user group list';
|
|
const msg = 'Error occurred in fetching user group list';
|
|
|
logger.error('Error', err);
|
|
logger.error('Error', err);
|
|
|
- return res.apiv3Err(new ErrorV3(msg, 'user-group-list-fetch-failed'));
|
|
|
|
|
|
|
+ return res.apiv3Err(new ErrorV3(msg, 'user-group-list-fetch-failed'), 500);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|