Implémentation SkydiverId API
This commit is contained in:
+52
-156
@@ -1,14 +1,14 @@
|
||||
var router = require('express').Router(),
|
||||
mongoose = require('mongoose'),
|
||||
Canopy = mongoose.model('Canopy'),
|
||||
Jump = mongoose.model('Jump'),
|
||||
User = mongoose.model('User');
|
||||
const auth = require('../auth');
|
||||
const auth = require('../auth'),
|
||||
queries = require('../queries');
|
||||
|
||||
router.get('/', auth.required, function (req, res, next) {
|
||||
var query = {};
|
||||
var limit = 25;
|
||||
var offset = 0;
|
||||
let query = {};
|
||||
let limit = 25;
|
||||
let offset = 0;
|
||||
if (typeof req.query.limit !== 'undefined') {
|
||||
limit = req.query.limit;
|
||||
}
|
||||
@@ -21,17 +21,17 @@ router.get('/', auth.required, function (req, res, next) {
|
||||
|
||||
User.findById(req.payload.id).then(function (user) {
|
||||
if (!user) {
|
||||
return res.sendStatus(401);
|
||||
return res.status(401).json({ errors: { "Unauthorized": "autentification requise" } });
|
||||
}
|
||||
if (user.role == 'Admin') {
|
||||
return res.sendStatus(403);
|
||||
return res.status(403).json({ errors: { "Forbidden": "Vous ne disposez pas des autorisations suffisantes" } });
|
||||
}
|
||||
Jump.find(query)
|
||||
.limit(Number(limit))
|
||||
.skip(Number(offset))
|
||||
.limit(Number(limit))
|
||||
.exec()
|
||||
.then(function (result) {
|
||||
var canopies = result;
|
||||
let canopies = result;
|
||||
return res.json({
|
||||
canopies: canopies,
|
||||
canopiesCount: canopies.length
|
||||
@@ -41,8 +41,8 @@ router.get('/', auth.required, function (req, res, next) {
|
||||
});
|
||||
|
||||
router.get('/allBySize', auth.required, function (req, res, next) {
|
||||
var limit = 25;
|
||||
var offset = 0;
|
||||
let limit = 25;
|
||||
let offset = 0;
|
||||
if (typeof req.query.limit !== 'undefined') {
|
||||
limit = req.query.limit;
|
||||
}
|
||||
@@ -52,38 +52,17 @@ router.get('/allBySize', auth.required, function (req, res, next) {
|
||||
|
||||
User.findById(req.payload.id).then(function (user) {
|
||||
if (!user) {
|
||||
return res.sendStatus(401);
|
||||
return res.status(401).json({ errors: { "Unauthorized": "autentification requise" } });
|
||||
}
|
||||
var query = [
|
||||
{
|
||||
'$match': {
|
||||
'$expr': {
|
||||
'$eq': [ '$author' , { '$toObjectId': user._id.toString() } ]
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$group': {
|
||||
'_id': {
|
||||
'taille': '$taille'
|
||||
},
|
||||
'count': {
|
||||
'$sum': 1
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$sort':
|
||||
{
|
||||
'_id': 1
|
||||
},
|
||||
}
|
||||
];
|
||||
Promise.all([
|
||||
Jump.aggregate(query)
|
||||
.limit(Number(limit))
|
||||
.skip(Number(offset))
|
||||
.exec()
|
||||
]).then(function (results) {
|
||||
var canopies = results[0];
|
||||
let query = queries.getCanopiesBySizeQuery(user._id.toString());
|
||||
Jump.aggregate(query)
|
||||
.skip(Number(offset))
|
||||
.limit(Number(limit))
|
||||
.exec()
|
||||
.then(function (result) {
|
||||
let canopies = result.map(function (data) {
|
||||
return { taille: data._id.taille, count: data.count };
|
||||
});
|
||||
return res.json({
|
||||
canopies: canopies,
|
||||
canopiesCount: canopies.length
|
||||
@@ -92,57 +71,28 @@ router.get('/allBySize', auth.required, function (req, res, next) {
|
||||
}).catch(next);
|
||||
});
|
||||
|
||||
router.get('/allByYear', auth.required, function (req, res, next) {
|
||||
router.get('/allBySizeByYear', auth.required, function (req, res, next) {
|
||||
User.findById(req.payload.id).then(function (user) {
|
||||
if (!user) {
|
||||
return res.sendStatus(401);
|
||||
return res.status(401).json({ errors: { "Unauthorized": "autentification requise" } });
|
||||
}
|
||||
var limit = 25;
|
||||
var offset = 0;
|
||||
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;
|
||||
}
|
||||
var query = [
|
||||
{
|
||||
'$match': {
|
||||
'$expr': {
|
||||
'$eq': [ '$author' , { '$toObjectId': user._id.toString() } ]
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$project': {
|
||||
'_id': 0,
|
||||
'taille': 1,
|
||||
'year': {
|
||||
'$year': '$date'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$group': {
|
||||
'_id': {
|
||||
'taille': '$taille',
|
||||
'year': '$year'
|
||||
},
|
||||
'count': {
|
||||
'$sum': 1
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$sort': {
|
||||
'_id': 1
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
let query = queries.getCanopiesBySizeByYearQuery(user._id.toString());
|
||||
Jump.aggregate(query)
|
||||
.limit(Number(limit))
|
||||
.skip(Number(offset))
|
||||
.limit(Number(limit))
|
||||
.exec()
|
||||
.then(function (result) {
|
||||
var canopies = result;
|
||||
let canopies = result.map(function (data) {
|
||||
return { taille: data._id.taille, year: data._id.year, count: data.count };
|
||||
});
|
||||
//console.log(dropzones);
|
||||
return res.json({
|
||||
canopies: canopies,
|
||||
@@ -152,9 +102,9 @@ router.get('/allByYear', auth.required, function (req, res, next) {
|
||||
}).catch(next);
|
||||
});
|
||||
|
||||
router.get('/allModelBySize', auth.required, function (req, res, next) {
|
||||
var limit = 25;
|
||||
var offset = 0;
|
||||
router.get('/allBySizeByModel', auth.required, function (req, res, next) {
|
||||
let limit = 25;
|
||||
let offset = 0;
|
||||
if (typeof req.query.limit !== 'undefined') {
|
||||
limit = req.query.limit;
|
||||
}
|
||||
@@ -164,39 +114,17 @@ router.get('/allModelBySize', auth.required, function (req, res, next) {
|
||||
|
||||
User.findById(req.payload.id).then(function (user) {
|
||||
if (!user) {
|
||||
return res.sendStatus(401);
|
||||
return res.status(401).json({ errors: { "Unauthorized": "autentification requise" } });
|
||||
}
|
||||
var query = [
|
||||
{
|
||||
'$match': {
|
||||
'$expr': {
|
||||
'$eq': [ '$author' , { '$toObjectId': user._id.toString() } ]
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$group': {
|
||||
'_id': {
|
||||
'taille': '$taille',
|
||||
'voile': '$voile'
|
||||
},
|
||||
'count': {
|
||||
'$sum': 1
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$sort':
|
||||
{
|
||||
'_id': 1
|
||||
},
|
||||
}
|
||||
];
|
||||
Promise.all([
|
||||
Jump.aggregate(query)
|
||||
.limit(Number(limit))
|
||||
.skip(Number(offset))
|
||||
.exec()
|
||||
]).then(function (results) {
|
||||
var canopies = results[0];
|
||||
let query = queries.getCanopiesBySizeByModelQuery(user._id.toString());
|
||||
Jump.aggregate(query)
|
||||
.skip(Number(offset))
|
||||
.limit(Number(limit))
|
||||
.exec()
|
||||
.then(function (result) {
|
||||
let canopies = result.map(function (data) {
|
||||
return { taille: data._id.taille, voile: data._id.voile, count: data.count };
|
||||
});
|
||||
return res.json({
|
||||
canopies: canopies,
|
||||
canopiesCount: canopies.length
|
||||
@@ -205,60 +133,28 @@ router.get('/allModelBySize', auth.required, function (req, res, next) {
|
||||
}).catch(next);
|
||||
});
|
||||
|
||||
router.get('/allModelByYear', auth.required, function (req, res, next) {
|
||||
router.get('/allBySizeByModelByYear', auth.required, function (req, res, next) {
|
||||
User.findById(req.payload.id).then(function (user) {
|
||||
if (!user) {
|
||||
return res.sendStatus(401);
|
||||
return res.status(401).json({ errors: { "Unauthorized": "autentification requise" } });
|
||||
}
|
||||
var limit = 25;
|
||||
var offset = 0;
|
||||
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;
|
||||
}
|
||||
var query = [
|
||||
{
|
||||
'$match': {
|
||||
'$expr': {
|
||||
'$eq': [ '$author' , { '$toObjectId': user._id.toString() } ]
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$project': {
|
||||
'_id': 0,
|
||||
'voile': 1,
|
||||
'taille': 1,
|
||||
'year': {
|
||||
'$year': '$date'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$group': {
|
||||
'_id': {
|
||||
'taille': '$taille',
|
||||
'voile': '$voile',
|
||||
'year': '$year'
|
||||
},
|
||||
'count': {
|
||||
'$sum': 1
|
||||
}
|
||||
}
|
||||
}, {
|
||||
'$sort': {
|
||||
'_id': 1
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
let query = queries.getCanopiesBySizeByModelByYearQuery(user._id.toString());
|
||||
Jump.aggregate(query)
|
||||
.limit(Number(limit))
|
||||
.skip(Number(offset))
|
||||
.limit(Number(limit))
|
||||
.exec()
|
||||
.then(function (result) {
|
||||
var canopies = result;
|
||||
//console.log(dropzones);
|
||||
let canopies = result.map(function (data) {
|
||||
return { taille: data._id.taille, voile: data._id.voile, year: data._id.year, count: data.count };
|
||||
});
|
||||
return res.json({
|
||||
canopies: canopies,
|
||||
canopiesCount: canopies.length
|
||||
|
||||
Reference in New Issue
Block a user