Refactoring et ajout de routes Hero Wars
This commit is contained in:
+18
-17
@@ -1,23 +1,24 @@
|
||||
var routes = require('express').Router();
|
||||
|
||||
//routes.use('/', require('./users'));
|
||||
//routes.use('/articles', require('./articles'));
|
||||
//routes.use('/comments', require('./comments'));
|
||||
//routes.use('/tags', require('./tags'));
|
||||
routes.use('/profiles', require('./profiles'));
|
||||
routes.use('/applications', require('./applications'));
|
||||
routes.use('/aeronefs', require('./aeronefs'));
|
||||
routes.use('/canopies', require('./canopies'));
|
||||
routes.use('/dropzones', require('./dropzones'));
|
||||
routes.use('/jumps', require('./jumps'));
|
||||
routes.use('/pages', require('./pages'));
|
||||
routes.use('/qcm', require('./qcm'));
|
||||
routes.use('/profiles', require('./v1/profiles'));
|
||||
routes.use('/applications', require('./v1/applications'));
|
||||
routes.use('/aeronefs', require('./v1/aeronefs'));
|
||||
routes.use('/canopies', require('./v1/canopies'));
|
||||
routes.use('/dropzones', require('./v1/dropzones'));
|
||||
routes.use('/jumps', require('./v1/jumps'));
|
||||
routes.use('/pages', require('./v1/pages'));
|
||||
routes.use('/qcm', require('./v1/qcm'));
|
||||
|
||||
routes.use('/user', require('./user.routes'));
|
||||
routes.use('/articles', require('./articles.routes'));
|
||||
routes.use('/comment', require('./comment.routes'));
|
||||
routes.use('/products', require('./products.routes'));
|
||||
routes.use('/tag', require('./tag.routes'));
|
||||
routes.use('/user', require('./v2/user.routes'));
|
||||
routes.use('/articles', require('./v2/articles.routes'));
|
||||
routes.use('/comment', require('./v2/comment.routes'));
|
||||
routes.use('/product', require('./v2/product.routes'));
|
||||
routes.use('/products', require('./v2/products.routes'));
|
||||
routes.use('/tag', require('./v2/tag.routes'));
|
||||
|
||||
|
||||
routes.use('/clans', require('./v3/clans.routes'));
|
||||
routes.use('/members', require('./v3/members.routes'));
|
||||
|
||||
routes.use(function (err, req, res, next) {
|
||||
if (err.name === 'ValidationError') {
|
||||
|
||||
@@ -2,8 +2,8 @@ var router = require('express').Router(),
|
||||
mongoose = require('mongoose'),
|
||||
Jump = mongoose.model('Jump'),
|
||||
User = mongoose.model('User');
|
||||
const auth = require('../auth'),
|
||||
queries = require('../queries');
|
||||
const auth = require('../../../middlewares/auth'),
|
||||
queries = require('../../queries');
|
||||
|
||||
|
||||
router.get('/allByImat', auth.required, function (req, res, next) {
|
||||
@@ -2,7 +2,7 @@ var router = require('express').Router(),
|
||||
mongoose = require('mongoose'),
|
||||
Application = mongoose.model('Application'),
|
||||
User = mongoose.model('User');
|
||||
const auth = require('../auth'),
|
||||
const auth = require('../../../middlewares/auth'),
|
||||
mailer = require('@sendgrid/mail');
|
||||
|
||||
mailer.setApiKey(process.env.SENDGRID_API_KEY);
|
||||
@@ -2,8 +2,8 @@ var router = require('express').Router(),
|
||||
mongoose = require('mongoose'),
|
||||
Jump = mongoose.model('Jump'),
|
||||
User = mongoose.model('User');
|
||||
const auth = require('../auth'),
|
||||
queries = require('../queries');
|
||||
const auth = require('../../../middlewares/auth'),
|
||||
queries = require('../../queries');
|
||||
|
||||
router.get('/', auth.required, function (req, res, next) {
|
||||
let query = {};
|
||||
@@ -2,8 +2,8 @@ var router = require('express').Router(),
|
||||
mongoose = require('mongoose'),
|
||||
Jump = mongoose.model('Jump'),
|
||||
User = mongoose.model('User');
|
||||
const auth = require('../auth'),
|
||||
queries = require('../queries');
|
||||
const auth = require('../../../middlewares/auth'),
|
||||
queries = require('../../queries');
|
||||
|
||||
|
||||
router.get('/allByOaci', auth.required, function (req, res, next) {
|
||||
@@ -0,0 +1,13 @@
|
||||
var routes = require('express').Router();
|
||||
|
||||
routes.use('/applications', require('./applications'));
|
||||
routes.use('/aeronefs', require('./aeronefs'));
|
||||
routes.use('/canopies', require('./canopies'));
|
||||
routes.use('/dropzones', require('./dropzones'));
|
||||
routes.use('/jumps', require('./jumps'));
|
||||
routes.use('/pages', require('./pages'));
|
||||
routes.use('/profiles', require('./profiles'));
|
||||
routes.use('/qcm', require('./qcm'));
|
||||
//routes.use('/user', require('./users'));
|
||||
|
||||
module.exports = routes;
|
||||
@@ -4,10 +4,10 @@ var router = require('express').Router(),
|
||||
JumpFile = mongoose.model('JumpFile'),
|
||||
User = mongoose.model('User'),
|
||||
X2DataLog = mongoose.model('X2DataLog');
|
||||
const auth = require('../auth'),
|
||||
const auth = require('../../../middlewares/auth'),
|
||||
chalk = require('chalk'),
|
||||
queries = require('../queries'),
|
||||
utils = require('../utils');
|
||||
queries = require('../../queries'),
|
||||
utils = require('../../utils');
|
||||
|
||||
// Preload jump objects on routes with ':jump'
|
||||
router.param('jump', function (req, res, next, slug) {
|
||||
@@ -2,8 +2,8 @@ var router = require('express').Router(),
|
||||
mongoose = require('mongoose'),
|
||||
Jump = mongoose.model('Jump'),
|
||||
User = mongoose.model('User');
|
||||
const auth = require('../auth'),
|
||||
queries = require('../queries');
|
||||
const auth = require('../../../middlewares/auth'),
|
||||
queries = require('../../queries');
|
||||
|
||||
router.get('/aeronefs', auth.required, function (req, res, next) {
|
||||
User.findById(req.payload.id).then(function (user) {
|
||||
@@ -1,7 +1,7 @@
|
||||
var router = require('express').Router(),
|
||||
mongoose = require('mongoose'),
|
||||
User = mongoose.model('User');
|
||||
const auth = require('../auth');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
// Preload user profile on routes with ':username'
|
||||
router.param('username', function (req, res, next, username) {
|
||||
@@ -5,7 +5,7 @@ var router = require('express').Router(),
|
||||
QcmQuestion = mongoose.model('QcmQuestion'),
|
||||
QcmChoice = mongoose.model('QcmChoice'),
|
||||
User = mongoose.model('User');
|
||||
const auth = require('../auth');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
// Preload qcm objects on routes with ':type'
|
||||
router.param('type', function (req, res, next, type) {
|
||||
@@ -2,7 +2,7 @@ var router = require('express').Router(),
|
||||
mongoose = require('mongoose'),
|
||||
User = mongoose.model('User');
|
||||
const passport = require('passport'),
|
||||
auth = require('../auth');
|
||||
auth = require('../../auth');
|
||||
|
||||
router.get('/user', auth.required, function (req, res, next) {
|
||||
//console.log(req.payload);
|
||||
@@ -8,8 +8,8 @@ const {
|
||||
updateArticle,
|
||||
addFavoriteArticle,
|
||||
deleteFavoriteArticle
|
||||
} = require('../../controllers/article.controller');
|
||||
const auth = require('../auth');
|
||||
} = require('../../../controllers/article.controller');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
const articleRouter = express.Router();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const express = require('express');
|
||||
const { createComment, getAllComments } = require('../../controllers/comment.controller');
|
||||
const auth = require('../auth');
|
||||
const { createComment, getAllComments } = require('../../../controllers/comment.controller');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
const commentRouter = express.Router();
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
const express = require('express');
|
||||
const { createMember, getAllMembers, getMember, updateMember } = require('../../../controllers/herowars.controller');
|
||||
const auth = require('../../auth');
|
||||
|
||||
const herowarsRouter = express.Router();
|
||||
|
||||
herowarsRouter.param('member', getMember);
|
||||
herowarsRouter.get('/:member', auth.required, getMember);
|
||||
herowarsRouter.get('/', auth.required, getAllMembers);
|
||||
herowarsRouter.post('/', auth.required, createMember);
|
||||
herowarsRouter.put('/', auth.required, updateMember);
|
||||
|
||||
module.exports = herowarsRouter;
|
||||
@@ -0,0 +1,11 @@
|
||||
var routes = require('express').Router();
|
||||
|
||||
routes.use('/user', require('./user.routes'));
|
||||
routes.use('/articles', require('./articles.routes'));
|
||||
routes.use('/comment', require('./comment.routes'));
|
||||
routes.use('/product', require('./product.routes'));
|
||||
routes.use('/products', require('./products.routes'));
|
||||
routes.use('/tag', require('./tag.routes'));
|
||||
routes.use('/herowars', require('./herowars.routes'));
|
||||
|
||||
module.exports = routes;
|
||||
@@ -3,19 +3,17 @@ const {
|
||||
getProduct,
|
||||
getProducts,
|
||||
createProduct,
|
||||
productsFeed,
|
||||
addFavoriteProduct,
|
||||
deleteFavoriteProduct,
|
||||
deleteProduct,
|
||||
updateProduct,
|
||||
} = require('../../controllers/product.controller');
|
||||
const auth = require('../auth');
|
||||
} = require('../../../controllers/product.controller');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
const productRouter = express.Router();
|
||||
|
||||
productRouter.get('/', auth.optional, getProducts);
|
||||
productRouter.post('/', auth.required, createProduct);
|
||||
productRouter.get('/feed', auth.required, productsFeed);
|
||||
productRouter.get('/:slug', auth.optional, getProduct);
|
||||
productRouter.put('/:slug', auth.required, updateProduct);
|
||||
productRouter.delete('/:slug', auth.required, deleteProduct);
|
||||
@@ -0,0 +1,15 @@
|
||||
const express = require('express');
|
||||
const {
|
||||
getProducts,
|
||||
getProductsByCategory,
|
||||
productsFeed
|
||||
} = require('../../../controllers/products.controller');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
const productsRouter = express.Router();
|
||||
|
||||
productsRouter.get('/', auth.optional, getProducts);
|
||||
productsRouter.get('/feed', auth.required, productsFeed);
|
||||
productsRouter.get('/:category', auth.optional, getProductsByCategory);
|
||||
|
||||
module.exports = productsRouter;
|
||||
@@ -1,6 +1,6 @@
|
||||
const express = require('express');
|
||||
const { createTag, getAllTags } = require('../../controllers/tag.controller');
|
||||
const auth = require('../auth');
|
||||
const { createTag, getAllTags } = require('../../../controllers/tag.controller');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
const tagRouter = express.Router();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const express = require('express');
|
||||
const { authenticate, createUser, getUser, loginAsUser, updateUser } = require('../../controllers/user.controller');
|
||||
const auth = require('../auth');
|
||||
const { authenticate, createUser, getUser, loginAsUser, updateUser } = require('../../../controllers/user.controller');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
const userRouter = express.Router();
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
const express = require('express');
|
||||
const { createClan, deleteClan, getAllClans, getClan, updateClan } = require('../../../controllers/clan.controller');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
const clanRouter = express.Router();
|
||||
|
||||
//clanRouter.param('clanId', getClan);
|
||||
clanRouter.get('/', auth.optional, getAllClans);
|
||||
clanRouter.post('/', auth.required, createClan);
|
||||
clanRouter.get('/:clanId', auth.required, getClan);
|
||||
clanRouter.put('/:clanId', auth.required, updateClan);
|
||||
clanRouter.delete('/:clanId', auth.required, deleteClan);
|
||||
|
||||
module.exports = clanRouter;
|
||||
@@ -0,0 +1,6 @@
|
||||
var routes = require('express').Router();
|
||||
|
||||
routes.use('/clans', require('./clans'));
|
||||
routes.use('/members', require('./members'));
|
||||
|
||||
module.exports = routes;
|
||||
@@ -0,0 +1,14 @@
|
||||
const express = require('express');
|
||||
const { createMember, deleteMember, getAllMembers, getMember, updateMember } = require('../../../controllers/member.controller');
|
||||
const auth = require('../../../middlewares/auth');
|
||||
|
||||
const memberRouter = express.Router();
|
||||
|
||||
//memberRouter.param('memberId', getMember);
|
||||
memberRouter.get('/', auth.required, getAllMembers);
|
||||
memberRouter.post('/', auth.required, createMember);
|
||||
memberRouter.get('/:memberId', auth.required, getMember);
|
||||
memberRouter.put('/:memberId', auth.required, updateMember);
|
||||
memberRouter.delete('/:memberId', auth.required, deleteMember);
|
||||
|
||||
module.exports = memberRouter;
|
||||
@@ -1,82 +0,0 @@
|
||||
|
||||
//var jwt = require('express-jwt');
|
||||
var { expressjwt: jwt } = require("express-jwt"),
|
||||
secret = require('../config').secret,
|
||||
bcrypt = require('bcrypt');
|
||||
const { v4 } = require('uuid'),
|
||||
passport = require('passport'),
|
||||
auths = ['Api-Key', 'Basic', 'Bearer', 'Token'];
|
||||
|
||||
function getTokenFromHeader(req) {
|
||||
if(req.headers.authorization && auths.indexOf(req.headers.authorization.split(' ')[0]) !== -1) {
|
||||
return req.headers.authorization.split(' ')[1];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
const auth = {
|
||||
requiredJwt: jwt({
|
||||
secret: secret,
|
||||
algorithms: ['HS256'],
|
||||
requestProperty: 'payload',
|
||||
getToken: getTokenFromHeader
|
||||
}),
|
||||
optional: jwt({
|
||||
secret: secret,
|
||||
algorithms: ['HS256'],
|
||||
requestProperty: 'payload',
|
||||
credentialsRequired: false,
|
||||
getToken: getTokenFromHeader
|
||||
}),
|
||||
required: async (req, res, next) => {
|
||||
if(req.headers.authorization && req.headers.authorization.split(' ')[0] === process.env.AUTHORIZATION_PREFIX) {
|
||||
passport.authenticate('headerapikey', { session: false }, function (err, application, info) {
|
||||
if (err) {
|
||||
return next({message: "An authentication error occured.", err: err.message});
|
||||
}
|
||||
if (!application) {
|
||||
return res.status(401).json({message: "Unauthorized - You are not allowed to access this resource.", err: err, info: info});
|
||||
}
|
||||
req.application = application;
|
||||
req.payload = {id: application.author._id};
|
||||
return next();
|
||||
})(req, res, next);
|
||||
} else {
|
||||
return jwt({
|
||||
secret: secret,
|
||||
algorithms: ['HS256'],
|
||||
requestProperty: 'payload',
|
||||
getToken: getTokenFromHeader
|
||||
})(req, res, next);
|
||||
}
|
||||
},
|
||||
getAuthType: (req) => {
|
||||
if(req.headers.authorization && auths.indexOf(req.headers.authorization.split(' ')[0]) !== -1) {
|
||||
let value = req.headers.authorization.split(' ')[0];
|
||||
return value;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
generateAPIKey: async () => {
|
||||
const key = v4().replace(/-/g, '');
|
||||
const salt = secret;
|
||||
// Génération d'un salt aléatoire : const salt = await Promise.resolve(bcrypt.genSalt(10));
|
||||
const maskedKey = `${key.slice(0, 4)}...${key.slice(-4)}`;
|
||||
const encryptedKey = await Promise.resolve(bcrypt.hash(key, salt));
|
||||
return { key: key, masked: maskedKey, encrypted: encryptedKey};
|
||||
},
|
||||
authenticateKey: async (req, res, next) => {
|
||||
passport.authenticate('headerapikey', { session: false }, function (err, application, info) {
|
||||
if (err) {
|
||||
return res.status(err.status || 500).json({message: "An authentication error occured (authenticateKey).", err: err.message});
|
||||
}
|
||||
if (!application) {
|
||||
return res.status(401).json({message: "Unauthorized - You are not allowed to access this resource.", err: err, info: info});
|
||||
}
|
||||
req.application = application;
|
||||
return next();
|
||||
})(req, res, next);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = auth;
|
||||
@@ -1,4 +1,7 @@
|
||||
var routes = require('express').Router();
|
||||
routes.use('/api', require('./api'));
|
||||
//routes.use('/api/v1', require('./api/v1'));
|
||||
//routes.use('/api/v2', require('./api/v2'));
|
||||
//routes.use('/api/v3', require('./api/v3'));
|
||||
|
||||
module.exports = routes;
|
||||
|
||||
Reference in New Issue
Block a user