1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
| const path = require('path');
const Config = require(path.join(__dirname, '/../configs/config'));
const Reponse = require(path.join(__dirname, '/../models/reponse'));
const EntreeManager = require(path.join(__dirname, '/../models/entree_manager'));
/////////////////////////////////////////////////////// DONE!
module.exports = {
// Affiche la liste de toutes les entrées.
list(REST_RESPONSE) {
return function(req, res, next) { // done
req.reponse = new Reponse();
EntreeManager.select() // Sélectionne les entrées.
.exec(function (err, entree_list) {
// On veut renvoyer du JSON
if(REST_RESPONSE) {
if(!entree_list) {
req.reponse.notFound = true;
req.reponse.moreInfos = "Aucune entrée trouvée sur le serveur.";
} else {
req.reponse.success = true;
req.reponse.data = entree_list;
}
return res.json(req.reponse);
}
if (err) { return next(err); }
// On affiche la réponse.
res.render('entree_list', { title: 'Entrées | Liste', entree_list: entree_list });
});
};
},
// Affiche les détails d'une entrée.
details(REST_RESPONSE) {
return function(req, res, next) {
EntreeManager.select(req.params.id, true) // On récupère les détails sur l'entrée.
.exec(function (err, entree) {
// On veut renvoyer une réponse JSON
if(REST_RESPONSE) {
if(!entree) {
req.reponse.notFound = true;
req.reponse.moreInfos = "Entrée introuvable.";
} else {
req.reponse.success = true;
req.reponse.data = entree;
}
return res.json(req.reponse);
}
// On veut afficher les détails dans la vue
if (err) { return next(err); }
res.render('entree_details', { title: 'Entrées | Détails', entree: entree });
});
};
},
// Affiche le formulaire de mise à jour d'une entrée.
update_get(REST_RESPONSE) {
return function(req, res, next) {
// On récupère les données dont a besoin la page.
EntreeManager.select(req.params.id, true)
.exec(function(err, entree) {
if(REST_RESPONSE) { // REST
if(!entree) {
req.reponse.notFound = true;
req.reponse.moreInfos = "Données introuvables.";
} else {
req.reponse.success = true;
req.reponse.data = entree;
}
return res.json(req.reponse);
}
// Vue
if (err) { return next(err); }
// On affiche la page.
res.render('entree_form', { title: 'Entrées | Mise à jour', entree: entree });
});
};
},
// Gère la mise à jour des données de l'entrée.
update(REST_RESPONSE) {
return function(req, res, next) {
const entree = req.body;
EntreeManager.update(req.params.id, entree) // On essaie de mettre à jour l'entrée.
.exec(function (err, _entree) {
if(REST_RESPONSE) { // REST
if(!_entree) {
req.reponse.notFound = true;
req.reponse.moreInfos = "Entrée introuvable.";
} else {
req.reponse.success = true;
req.reponse.data = entree;
}
return res.json(req.reponse);
}
if (err) { return next(err); }
// On rédirige vers la page de détails de l'entrée.
res.redirect(_entree.url);
});
};
},
// Gère la validation de l'entrée.
validate(REST_RESPONSE) {
return function(req, res, next) {
EntreeManager.update(req.params.id, {
statut: Config.ENTREE_VALIDEE
}) // On essaie de mettre à jour l'entrée.
.exec(function (err, _entree) {
if(REST_RESPONSE) { // REST
if(!_entree) {
req.reponse.notFound = true;
req.reponse.moreInfos = "Entrée introuvable.";
} else {
req.reponse.success = true;
req.reponse.data = _entree;
}
return res.json(req.reponse);
}
if (err) { return next(err); }
// On rédirige vers la page de détails de l'entrée.
res.redirect(_entree.url);
});
};
}
}; |
Partager