128 lines
4.9 KiB
JavaScript
128 lines
4.9 KiB
JavaScript
/////////////////////////////////////////////////
|
|
// 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
|
|
} |