caradoc-router
Version:
router for caradoc framework
93 lines (75 loc) • 2.84 kB
JavaScript
var routes = require('../../../config/routes');
var security = require('../../../config/security');
var dir_path = "../../../";
var path = require('path');
var fs = require('fs');
/*
* CHECK IF SECURITY IS ACTIVE
*/
var secure;
if(security.get.active){
secure = require('caradoc-security').get;
}
else{
secure = function(req, res, next){ next();};
}
exports.get = function (app) {
/*
* Parcourt des routes principales et secondaires pour pouvoir rédiriger vers l'action d'un controller.
*/
for( var key in routes.get) {
var subroutes = require(dir_path+'src/'+routes.get[key]['name']+'/config/routes');
for(keys in subroutes.get) {
var controller = require(dir_path+'src/'+routes.get[key]['name']+'/controller/'+subroutes.get[keys]['controller']);
var firstPattern = '';
if(routes.get[key]['pattern'] != '/'){
firstPattern = routes.get[key]['pattern'];
}
var secondPattern = subroutes.get[keys]['pattern'];
var pattern = path.join(firstPattern,secondPattern);
if(subroutes.get[keys]['method'] == 'GET') {
app.get(pattern, secure , controller.action[subroutes.get[keys]['action']]);
}
if(subroutes.get[keys]['method'] == 'POST') {
app.post(pattern, secure , controller.action[subroutes.get[keys]['action']]);
}
if(subroutes.get[keys]['method'] == 'PUT') {
app.put(pattern, secure ,controller.action[subroutes.get[keys]['action']]);
}
if(subroutes.get[keys]['method'] == 'DELETE') {
app.delete(pattern, secure , controller.action[subroutes.get[keys]['action']]);
}
}
}
if(fs.existsSync(path.resolve(__dirname,'../../caradoc-suer'))){
var service_login = require('caradoc-user');
/*
* LOGOUT
*/
app.get('/logout', service_login.logout);
/*
* LOGIN
*/
app.post(require('../../../config/security').get.security.form_login.login_check, service_login.login_check);
/*
* INSCRIPTION
*/
app.post(require('../../../config/security').get.security.inscription.inscription_check, service_login.inscription_check);
}
/*
* Route vers le dossier public et affichage des css javascripts et images
*/
app.get('/public/:type/:param1/:param2?/:param3?/:param4?/:param5?', require('./publicData'));
/*
* 401 Unautorised
*/
app.get('/401', function(req, res){
res.render('src/401')
});
/*
* Renvoie d'une erreur 404 dans le cas où aucune page ne serait trouvée.
*/
app.get('*', function(req, res){
res.render('src/404');
});
};