144 lines
4.2 KiB
JavaScript
144 lines
4.2 KiB
JavaScript
var router = require('express').Router(),
|
|
mongoose = require('mongoose'),
|
|
Jump = mongoose.model('Jump'),
|
|
User = mongoose.model('User');
|
|
const auth = require('../auth'),
|
|
queries = require('../queries');
|
|
|
|
|
|
router.get('/allByImat', auth.required, function (req, res, next) {
|
|
let limit = 25;
|
|
let 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.status(401).json({ errors: { "Unauthorized": "autentification requise" } });
|
|
}
|
|
let query = queries.getAeronefsByImatQuery(user._id.toString());
|
|
Promise.all([
|
|
Jump.aggregate(query)
|
|
.skip(Number(offset))
|
|
.limit(Number(limit))
|
|
.exec()
|
|
//Aeronef.count(query)
|
|
]).then(function (results) {
|
|
let aeronefs = results[0];
|
|
//let aeronefsCount = results[1];
|
|
return res.json({
|
|
aeronefs: aeronefs.map(function (data) {
|
|
return { aeronef: data._id.aeronef, imat: data._id.imat, count: data.count };
|
|
}),
|
|
aeronefsCount: aeronefs.length
|
|
});
|
|
/*
|
|
return res.json({
|
|
aeronefs: aeronefs.map(function (aeronef) {
|
|
return aeronef.toJSONFor(user);
|
|
}),
|
|
aeronefsCount: aeronefsCount
|
|
});
|
|
*/
|
|
}).catch(next);
|
|
}).catch(next);
|
|
});
|
|
|
|
router.get('/allByImatByYear', auth.required, function (req, res, next) {
|
|
User.findById(req.payload.id).then(function (user) {
|
|
if (!user) {
|
|
return res.status(401).json({ errors: { "Unauthorized": "autentification requise" } });
|
|
}
|
|
let limit = 50;
|
|
let offset = 0;
|
|
if (typeof req.query.limit !== 'undefined') {
|
|
limit = req.query.limit;
|
|
}
|
|
if (typeof req.query.offset !== 'undefined') {
|
|
offset = req.query.offset;
|
|
}
|
|
let query = queries.getAeronefsByImatByYearQuery(user._id.toString());
|
|
|
|
Jump.aggregate(query)
|
|
.skip(Number(offset))
|
|
.limit(Number(limit))
|
|
.exec()
|
|
.then(function (result) {
|
|
let aeronefs = result.map(function (data) {
|
|
return { aeronef: data._id.aeronef, imat: data._id.imat, year: data._id.year, count: data.count };
|
|
});
|
|
return res.json({
|
|
aeronefs: aeronefs,
|
|
aeronefsCount: aeronefs.length
|
|
});
|
|
}).catch(next);
|
|
}).catch(next);
|
|
/*
|
|
let limit = 50;
|
|
let offset = 0;
|
|
if (typeof req.query.limit !== 'undefined') {
|
|
limit = req.query.limit;
|
|
}
|
|
if (typeof req.query.offset !== 'undefined') {
|
|
offset = req.query.offset;
|
|
}
|
|
let query = [
|
|
{
|
|
'$match': {
|
|
'$expr': {
|
|
'$eq': [ '$author' , { '$toObjectId': user._id.toString() } ]
|
|
}
|
|
}
|
|
}, {
|
|
'$project': {
|
|
'_id': 0,
|
|
'aeronef': 1,
|
|
'imat': 1,
|
|
'year': {
|
|
'$year': '$date'
|
|
}
|
|
}
|
|
}, {
|
|
'$group': {
|
|
'_id': {
|
|
'aeronef': '$aeronef',
|
|
'imat': '$imat',
|
|
'year': '$year'
|
|
},
|
|
'count': {
|
|
'$sum': 1
|
|
}
|
|
}
|
|
}, {
|
|
'$sort': {
|
|
'_id': 1
|
|
}
|
|
}
|
|
];
|
|
Promise.all([
|
|
req.payload ? User.findById(req.payload.id) : null,
|
|
Jump.aggregate(query)
|
|
.skip(Number(offset))
|
|
.limit(Number(limit))
|
|
.exec()
|
|
]).then(function (results) {
|
|
let user = results[0];
|
|
let aeronefs = results[1];
|
|
if (!user) {
|
|
return res.status(401).json({ errors: { "Unauthorized": "autentification requise" } });
|
|
}
|
|
return res.json({
|
|
aeronefs: aeronefs,
|
|
aeronefsCount: aeronefs.length
|
|
});
|
|
}).catch(next);
|
|
*/
|
|
|
|
});
|
|
|
|
module.exports = router;
|