total_1ère
This commit is contained in:
168
routes/ventevideoRouter copie 2.js
Normal file
168
routes/ventevideoRouter copie 2.js
Normal file
@@ -0,0 +1,168 @@
|
||||
/////////////////////////////////////////////////
|
||||
// ADHÉSION
|
||||
// [DOMAIN]/inscription
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../public/js/app/logger_lienventetemp");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
// CALCUL DE DATE
|
||||
const moment = require('moment');
|
||||
moment.locale('fr');
|
||||
let now = moment().format("YYYY-MM-DD HH:mm:ss");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES FONCTIONS
|
||||
/////////////////////////////////////////////////
|
||||
const {
|
||||
generate_link,
|
||||
download_file
|
||||
} = require("../controllers/vente_video/generate_linkController");
|
||||
|
||||
const {
|
||||
post_req_stripe,
|
||||
ventevideo_accompte_reussi,
|
||||
ventevideo_accompte_annule
|
||||
} = require("../controllers/vente_video/vente_videoController");
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ROUTES
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// VIDÉO UNESCO
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// ECRAN 1 : ACCUEIL DE LA VENTE DE LA VIDEO
|
||||
router.get('/videos', function(req, res) {
|
||||
logger.info("on est dans la page web /videos (ventevideoRouter.js)", { numsession: req.session.id });
|
||||
|
||||
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
|
||||
if (req.session.affiche_err_1) {
|
||||
res.locals.affiche_err_1 = req.session.affiche_err_1;
|
||||
// on supprime le contenu après affichage
|
||||
req.session.affiche_err_1 = undefined;
|
||||
}
|
||||
|
||||
res.render('ventevideo/page_templates/ventelien_boutonacheter');
|
||||
|
||||
});
|
||||
|
||||
// ECRAN 2 : PAIEMENT AVEC STRIPE
|
||||
router.post('/videos', post_req_stripe);
|
||||
|
||||
// ECRAN 3 - RETOUR STRIPE
|
||||
router.get('/videos/paiement_reussi', ventevideo_accompte_reussi);
|
||||
router.get('/videos/paiement_annule', ventevideo_accompte_annule);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// Générer le lien temporaire
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// ROUTE DE TEST
|
||||
router.get('/unesco/lien', async function(req, res) {
|
||||
logger.info("on est dans la route vente video lien (ventevideoRouter.js)", { numsession: req.session.id });
|
||||
|
||||
try {
|
||||
// APPEL DU CONTROLLER QUI GÉNÉRE LE LIEN
|
||||
const result = await generate_link(req, res);
|
||||
logger.info("on est dans la route vente video lien try", { numsession: req.session.id });
|
||||
logger.info("result : " + result, { numsession: req.session.id });
|
||||
// envoie de la réponse HTTP "200 : ok" avec les données
|
||||
res.status(200).json({
|
||||
success: true,
|
||||
message: "Génération du lien réussi",
|
||||
data: result
|
||||
});
|
||||
} catch (error) {
|
||||
logger.info("on est dans la route vente video lien catch", { numsession: req.session.id });
|
||||
// envoie de la réponse HTTP "500 : erreur server" avec les données
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: "Génération du lien échec"
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// ROUTE POUR LA BOUTIQUE VIDEOS
|
||||
router.get('/videos/whstripe', async function(req, res) {
|
||||
logger.info("on est dans la route vente video lien (ventevideoRouter.js)", { numsession: req.session.id });
|
||||
|
||||
try {
|
||||
// APPEL DU CONTROLLER QUI GÉNÉRE LE LIEN
|
||||
const result = await generate_link(req, res);
|
||||
logger.info("on est dans la route vente video lien try", { numsession: req.session.id });
|
||||
logger.info("result : " + result, { numsession: req.session.id });
|
||||
// envoie de la réponse HTTP "200 : ok" avec les données
|
||||
res.status(200).json({
|
||||
success: true,
|
||||
message: "Génération du lien réussi",
|
||||
data: result
|
||||
});
|
||||
} catch (error) {
|
||||
logger.info("on est dans la route vente video lien catch", { numsession: req.session.id });
|
||||
// envoie de la réponse HTTP "500 : erreur server" avec les données
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: "Génération du lien échec"
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// Endpoint pour télécharger le fichier depuis le lien généré
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
router.get('/unesco/download/:id', async function(req, res) {
|
||||
logger.info("on est dans la route vente video download (ventevideoRouter.js)", { numsession: req.session.id });
|
||||
logger.info("lien de téléchargement appelé : " + req.originalUrl, { numsession: req.session.id });
|
||||
|
||||
try {
|
||||
// APPEL DU CONTROLLER QUI contrôle le lien et download le fichier
|
||||
const result = await download_file(req, res);
|
||||
logger.info("on est dans la route vente video download try", { numsession: req.session.id });
|
||||
logger.info("result : " + result, { numsession: req.session.id });
|
||||
|
||||
// AFFICHAGE DU RÉSULTAT en fonction de l'expiration ou non du lien
|
||||
if (result === "Lien expiré") {
|
||||
// envoie de la réponse HTTP "403 : forbidden" avec les données
|
||||
return res.status(403).send('Link has expired');
|
||||
} else if (result === "Lien non trouvé") {
|
||||
return res.status(404).send('Link does not exist');
|
||||
} else {
|
||||
// méthode download() d'Express.js
|
||||
// Cette méthode est utilisée pour envoyer un fichier au client et déclencher un téléchargement dans le navigateur. Lorsque cette méthode est appelée, le navigateur du client affichera une boîte de dialogue pour télécharger le fichier spécifié.
|
||||
return res.render('ventevideo/page_templates/ventelien_telechargement_encours', {
|
||||
message : "Votre téléchargement a commencé automatiquement.",
|
||||
filename: result
|
||||
}, () => {
|
||||
res.download(result, (err) => {
|
||||
if (err) {
|
||||
// envoie de la réponse HTTP "404 : ressource non trouvée" avec les données
|
||||
return res.status(404).send('File not found');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
} catch (error) {
|
||||
logger.info("on est dans la route vente video download catch", { numsession: req.session.id });
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "download échec"
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user