Files
talk/routes/api/user/index.js
T
Belén Curcio 5b74beabd6 Community Section - Search Commenters (#60)
* Table

* úsers api

* Ádding envs and version

* Community Table Added

* Ádding redux

* Adding loading data state

* Community Actions

* Adding Inmutable

* Fetching commenters

* Search commenters

* Linting and translations

* Ádding Sort

* sortBuilder

* pagr

* request per page, pager and mor

* package.json

* new Page actiokn

* éslint

* Changes and cleaner comps

* removed console.log
2016-11-11 11:14:26 -05:00

64 lines
1.2 KiB
JavaScript

const express = require('express');
const router = express.Router();
const User = require('../../../models/user');
router.get('/', (req, res, next) => {
const {
value = '',
field = 'created_at',
page = 1,
asc = 'false',
limit = 50 // Total Per Page
} = req.query;
let q = {
$or: [
{
'displayName': {
$regex: new RegExp(`^${value}`),
$options: 'i'
},
'profiles': {
$elemMatch: {
id: {
$regex: new RegExp(`^${value}`),
$options: 'i'
},
provider: 'local'
}
}
}
]
};
Promise.all([
User.find(q)
.sort({[field]: (asc === 'true') ? 1 : -1})
.skip((page - 1) * limit)
.limit(limit),
User.count()
])
.then(([data, count]) => {
const users = data.map((user) => {
const {displayName, created_at} = user;
return {
displayName,
created_at,
profiles: user.toObject().profiles
};
});
res.json({
result: users,
limit: Number(limit),
count,
page: Number(page),
totalPages: Math.ceil(count / limit)
});
})
.catch(next);
});
module.exports = router;