total_1ère

This commit is contained in:
2026-07-20 16:33:04 +02:00
parent dd49ba357b
commit d49cf88d99
275 changed files with 63607 additions and 5599 deletions

View 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;