Files
headup_api/routes/api/dropzones.js
T
2024-01-11 16:53:43 +01:00

123 lines
3.4 KiB
JavaScript

var router = require('express').Router(),
mongoose = require('mongoose'),
Dropzone = mongoose.model('Dropzone'),
Jump = mongoose.model('Jump'),
User = mongoose.model('User');
const auth = require('../auth');
router.get('/', auth.required, function (req, res, next) {
User.findById(req.payload.id).then(function (user) {
if (!user) {
return res.sendStatus(401);
}
var limit = 25;
var offset = 0;
if (typeof req.query.limit !== 'undefined') {
limit = req.query.limit;
}
if (typeof req.query.offset !== 'undefined') {
offset = req.query.offset;
}
var query = [
{
'$match': {
'$expr': {
'$eq': [ '$author' , { '$toObjectId': user._id.toString() } ]
}
}
}, {
'$group': {
'_id': {
'lieu': '$lieu',
'oaci': '$oaci'
},
'count': {
'$sum': 1
}
}
}, {
'$sort':
{
'_id': 1
},
}
];
Jump.aggregate(query)
.limit(Number(limit))
.skip(Number(offset))
.exec()
.then(function (result) {
var dropzones = result;
return res.json({
dropzones: dropzones,
dropzonesCount: dropzones.length
});
}).catch(next);
}).catch(next);
});
router.get('/allByDate', auth.required, function (req, res, next) {
User.findById(req.payload.id).then(function (user) {
if (!user) {
return res.sendStatus(401);
}
var limit = 25;
var offset = 0;
if (typeof req.query.limit !== 'undefined') {
limit = req.query.limit;
}
if (typeof req.query.offset !== 'undefined') {
offset = req.query.offset;
}
var query = [
{
'$match': {
'$expr': {
'$eq': [ '$author' , { '$toObjectId': user._id.toString() } ]
}
}
}, {
'$project': {
'_id': 0,
'lieu': 1,
'oaci': 1,
'year': {
'$year': '$date'
}
}
}, {
'$group': {
'_id': {
'lieu': '$lieu',
'oaci': '$oaci',
'year': '$year'
},
'count': {
'$sum': 1
}
}
}, {
'$sort': {
'_id': 1
}
}
];
Jump.aggregate(query)
.limit(Number(limit))
.skip(Number(offset))
.exec()
.then(function (result) {
var dropzones = result;
//console.log(dropzones);
return res.json({
dropzones: dropzones,
dropzonesCount: dropzones.length
});
}).catch(next);
}).catch(next);
});
module.exports = router;