59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
var router = require('express').Router(),
|
|
mongoose = require('mongoose'),
|
|
Canopy = mongoose.model('Canopy'),
|
|
Jump = mongoose.model('Jump'),
|
|
User = mongoose.model('User');
|
|
const auth = require('../auth');
|
|
|
|
|
|
router.get('/', auth.required, function (req, res, next) {
|
|
var limit = 20;
|
|
var offset = 0;
|
|
if (typeof req.query.limit !== 'undefined') {
|
|
limit = req.query.limit;
|
|
}
|
|
if (typeof req.query.offset !== 'undefined') {
|
|
offset = req.query.offset;
|
|
}
|
|
|
|
User.findById(req.payload.id).then(function (user) {
|
|
if (!user) {
|
|
return res.sendStatus(401);
|
|
}
|
|
var query = [
|
|
{
|
|
'$match': {
|
|
'$expr': {
|
|
'$eq': [ '$author' , { '$toObjectId': user._id.toString() } ]
|
|
}
|
|
}
|
|
}, {
|
|
'$group': {
|
|
'_id': {
|
|
'voile': '$voile',
|
|
'taille': '$taille'
|
|
},
|
|
'count': {
|
|
'$sum': 1
|
|
}
|
|
}
|
|
}
|
|
];
|
|
Promise.all([
|
|
Jump.aggregate(query)
|
|
.limit(Number(limit))
|
|
.skip(Number(offset))
|
|
.exec()
|
|
]).then(function (results) {
|
|
var canopies = results[0];
|
|
return res.json({
|
|
canopies: canopies,
|
|
canopiesCount: canopies.length
|
|
});
|
|
}).catch(next);
|
|
}).catch(next);
|
|
|
|
});
|
|
|
|
module.exports = router;
|