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;