total_1ère
This commit is contained in:
128
controllers/codesController.js
Normal file
128
controllers/codesController.js
Normal file
@@ -0,0 +1,128 @@
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
const path = require("path");
|
||||
// CALCUL DE DATE
|
||||
const moment = require('moment');
|
||||
// uuid
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES PERSOS
|
||||
/////////////////////////////////////////////////
|
||||
// loggings
|
||||
const logger = require("../public/js/app/logger_adhesion");
|
||||
// DB
|
||||
const { connect_DB_promise } = require('../modules/db/databaseconnect');
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// FILE NAME
|
||||
////////////////////////////////////////////////////
|
||||
const filename = path.parse(__filename).base;
|
||||
|
||||
// GOOGLE SHEET PARAMETERS
|
||||
/////////////////////////////////////////////////
|
||||
const { GoogleSpreadsheet } = require('google-spreadsheet');
|
||||
const GS_creds = require('../inscriptionsafps-53b60452f63d.json');
|
||||
const GS_codes_secrets = new GoogleSpreadsheet(process.env.gsheet_codes_secrets);
|
||||
const { error } = require("console");
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// FONCTIONS
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
const generer_codes = async function(req, res) {
|
||||
|
||||
logger.info("======================================", { label: filename });
|
||||
logger.info("======== FUNCTION generer_codes ==========", { label: filename });
|
||||
logger.info("======================================", { label: filename });
|
||||
|
||||
moment.locale('fr');
|
||||
let now = moment().format("YYYY-MM-DD HH:mm:ss");
|
||||
|
||||
// Récupérer le nombre de code désiré
|
||||
nb_codes_a_generer = req.body.nb_code;
|
||||
|
||||
// Si il y a des codes à ajouter on fait le traitement
|
||||
if (nb_codes_a_generer > 0) {
|
||||
logger.info("Nombre de codes à générer = " + nb_codes_a_generer, { numsession: req.session.id });
|
||||
|
||||
// Initier un tableau pour mettre les codes générés
|
||||
let tab_codes = [];
|
||||
|
||||
// Boucle sur le nombre de codes à générer
|
||||
for (i=0; i<nb_codes_a_generer; i++) {
|
||||
// Générer un code unique
|
||||
let uniqueCode = uuidv4();
|
||||
|
||||
// remplir le tableau avec le code généré
|
||||
tab_codes.push({['code'] : uniqueCode,'statut': "actif" });
|
||||
console.log("tab_codes = ", tab_codes);
|
||||
|
||||
}
|
||||
|
||||
// Copier les codes générés dans la base de données
|
||||
let table = "code";
|
||||
|
||||
const sql = 'INSERT INTO code (code, statut) VALUES ?';
|
||||
const values = tab_codes.map(item => [item.code, item.statut]);
|
||||
logger.info("sql = " + sql, { numsession: req.session.id });
|
||||
logger.info("values = " + values, { numsession: req.session.id });
|
||||
|
||||
// lancement de la requête
|
||||
let db_connection_promise = await connect_DB_promise();
|
||||
|
||||
const [result_sql, fields] = await db_connection_promise.query(sql, [values]);
|
||||
logger.info("#1 result_sql Row ID added : " + result_sql.insertId, { numsession: req.session.id, label: filename});
|
||||
console.log("result_sql = ",result_sql)
|
||||
|
||||
// GOOGLE SHEET - COPIER LES CODES DANS LA GOOGLE SHEET
|
||||
try {
|
||||
await GS_codes_secrets.useServiceAccountAuth(GS_creds);
|
||||
await GS_codes_secrets.loadInfo();
|
||||
let GS_codes_secrets_codes_secrets = GS_codes_secrets.sheetsByTitle['codes_secrets'];
|
||||
|
||||
|
||||
let ajout_codes = [];
|
||||
for (let i = 0; i < nb_codes_a_generer; i++) {
|
||||
ajout_codes.push({
|
||||
code: tab_codes[i].code,
|
||||
date_creation: now,
|
||||
statut: tab_codes[i].statut
|
||||
});
|
||||
}
|
||||
await GS_codes_secrets_codes_secrets.addRows(ajout_codes);
|
||||
|
||||
logger.info("AJOUT GOOGLESHEET FIN", { numsession: req.session.id, label: filename});
|
||||
|
||||
} catch (error) {
|
||||
// Echec de connection à la GOOGLE SHEET
|
||||
logger.error("Il y a un problème avec la connection à Google sheet (TRY 7) : " + error, { numsession: req.session.id, label: filename});
|
||||
req.session.message5 = '"Il y a un problème système, "' + error;
|
||||
res.redirect('/adhesion/maj_googlesheet');
|
||||
}
|
||||
|
||||
// A LA FIN DU TRAITEMENT ON AFFICHE LA PAGE AVEC LE RÉSULTAT
|
||||
if (result_sql.affectedRows > 0) {
|
||||
req.session.message5 = 'Nombre de codes ajoutés = '+result_sql.affectedRows;
|
||||
} else {
|
||||
req.session.message5 = 'Aucun code ajouté';
|
||||
}
|
||||
logger.info("req.session.message5 : " + req.session.message5, { numsession: req.session.id, label: filename});
|
||||
} else {
|
||||
req.session.message5 = 'Veuillez renseigner le nombre de codes à générer';
|
||||
logger.info("req.session.message5 : " + req.session.message5, { numsession: req.session.id, label: filename});
|
||||
}
|
||||
|
||||
res.redirect('/adhesion/maj_googlesheet');
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
module.exports = {
|
||||
generer_codes
|
||||
}
|
||||
Reference in New Issue
Block a user