total_1ère
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
|
||||
function profil(adherent_type) {
|
||||
let profil1, profil2, profil3 ;
|
||||
console.log ("function profil.adherent_type: ", adherent_type)
|
||||
console.log ("function profil.adherent_type: ", adherent_type);
|
||||
adherent_type = (adherent_type || "").trim().toLowerCase();
|
||||
if (adherent_type === "famille") {
|
||||
profil1 = "Famille";
|
||||
console.log("profil1 : ", profil1);
|
||||
@@ -22,29 +23,30 @@ function profil(adherent_type) {
|
||||
}
|
||||
if (adherent_type === "prof_stagiaire") {
|
||||
profil1 = "Professeur";
|
||||
profil2 = "Professeur stagiaire";
|
||||
profil2 = "Stagiaire ESA";
|
||||
console.log("profil1 : ", profil1);
|
||||
console.log("profil2 : ", profil2);
|
||||
}
|
||||
if (adherent_type === "prof_stagiaire_famille") {
|
||||
profil1 = "Professeur";
|
||||
profil2 = "Professeur stagiaire";
|
||||
profil2 = "Stagiaire ESA";
|
||||
profil3 = "Élève";
|
||||
console.log("profil1 : ", profil1);
|
||||
console.log("profil2 : ", profil2);
|
||||
console.log("profil3 : ", profil3);
|
||||
}
|
||||
if (adherent_type === "prof_stagiaire1") {
|
||||
profil1 = "Professeur stagiaire";
|
||||
profil1 = "Stagiaire ESA";
|
||||
console.log("profil1 : ", profil1);
|
||||
}
|
||||
if (adherent_type === "prof_stagiaire1_famille") {
|
||||
profil1 = "Professeur stagiaire";
|
||||
profil1 = "Stagiaire ESA";
|
||||
profil2 = "Élève";
|
||||
console.log("profil1 : ", profil1);
|
||||
console.log("profil2 : ", profil2);
|
||||
}
|
||||
console.log("RETURN profil1 : ", profil1);
|
||||
|
||||
//return profil1;
|
||||
return [profil1, profil2, profil3];
|
||||
|
||||
|
||||
35
modules/adhesion/maj_annuaire_prof_site_auto.js
Normal file
35
modules/adhesion/maj_annuaire_prof_site_auto.js
Normal file
@@ -0,0 +1,35 @@
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../../public/js/app/logger_adhesion");
|
||||
|
||||
const cron = require('node-cron');
|
||||
const axios = require('axios');
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// FILE NAME
|
||||
////////////////////////////////////////////////////
|
||||
const path = require("path");
|
||||
const filename = path.parse(__filename).base;
|
||||
|
||||
// URL de la page à lancer pour faire la mise à jour
|
||||
const URL = "https://inscription.afpedagogiesuzuki.fr/adhesion/sync_prof_strapi";
|
||||
|
||||
// Fonction pour envoyer la requête POST
|
||||
const maj_annuaire = async () => {
|
||||
try {
|
||||
const response = await axios.get(URL);
|
||||
logger.info("annuaire maj avec succès: " + response.status, { numsession:"maj_annuaire", label: filename});
|
||||
} catch (error) {
|
||||
logger.error("Erreur lors de la maj de l'annuaire: " + error, { numsession:"maj_annuaire", label: filename});
|
||||
}
|
||||
};
|
||||
|
||||
// Définir la tâche cron : ici, elle s'exécute toutes les 2 minutes
|
||||
// cron.schedule('*/2 * * * *', () => {
|
||||
// Définir la tâche cron : ici, elle s'exécute à 4h du matin
|
||||
// cron.schedule('0 4 * * *', () => {
|
||||
cron.schedule('0 4 * * *', () => {
|
||||
logger.info("MAJ annuaire cron lancée (modules/adhesion/maj_annuaire_prof_site_auto.js)", { numsession:"maj_annuaire", label: filename});
|
||||
maj_annuaire();
|
||||
});
|
||||
36
modules/adhesion/majgs_webhook.js
Normal file
36
modules/adhesion/majgs_webhook.js
Normal file
@@ -0,0 +1,36 @@
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../../public/js/app/logger_adhesion");
|
||||
const path = require("path");
|
||||
const cron = require('node-cron');
|
||||
const axios = require('axios');
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// FILE NAME
|
||||
////////////////////////////////////////////////////
|
||||
const filename = path.parse(__filename).base;
|
||||
|
||||
// URL du webhook
|
||||
//const WEBHOOK_URL = "http://localhost:8890/adhesion/maj_googlesheet_auto";
|
||||
const WEBHOOK_URL = "https://inscription.afpedagogiesuzuki.fr/adhesion/maj_googlesheet_auto";
|
||||
//const WEBHOOK_URL = process.env.adhesion_maj_gs_webhook_url; //cela ne fonctionne pas
|
||||
|
||||
// Fonction pour envoyer la requête POST
|
||||
const envoyerWebhook = async () => {
|
||||
try {
|
||||
const response = await axios.get(WEBHOOK_URL, {});
|
||||
logger.info("Webhook envoyé avec succès: " + response.status, { numsession:"webhook", label: filename});
|
||||
} catch (error) {
|
||||
logger.error("Erreur lors de l'envoi du webhook: " + error.message, { numsession:"webhook", label: filename});
|
||||
}
|
||||
};
|
||||
|
||||
// Définir la tâche cron : ici, elle s'exécute toutes les 2 minutes
|
||||
// cron.schedule('*/2 * * * *', () => {
|
||||
// Définir la tâche cron : ici, elle s'exécute à 3h du matin
|
||||
// cron.schedule('0 3 * * *', () => {
|
||||
cron.schedule('0 3 * * *', () => {
|
||||
logger.info("Envoi du webhook (modules/adhesion/majgs_webhook.js) à l'heure prévue", { numsession:"webhook", label: filename});
|
||||
envoyerWebhook();
|
||||
});
|
||||
47
modules/db/checkAdherent.js
Normal file
47
modules/db/checkAdherent.js
Normal file
@@ -0,0 +1,47 @@
|
||||
// recherche si identifiant saisie est bien dans la base de données des adhérents
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
const path = require("path");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES PERSOS
|
||||
/////////////////////////////////////////////////
|
||||
// loggings
|
||||
const logger = require("../../public/js/app/logger");
|
||||
// DB
|
||||
const { connect_DB_promise } = require('../db/databaseconnect');
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// FILE NAME
|
||||
////////////////////////////////////////////////////
|
||||
const filename = path.parse(__filename).base;
|
||||
|
||||
async function checkAdherent(sql) {
|
||||
try {
|
||||
const connection = await connect_DB_promise();
|
||||
const [results_checkAdherent] = await connection.execute(sql);
|
||||
await connection.end();
|
||||
|
||||
logger.info("checkAdherent results_checkAdherent.length = " + results_checkAdherent.length, {label: filename});
|
||||
|
||||
if (results_checkAdherent.length > 0) {
|
||||
logger.info("Est adhérent", {label: filename});
|
||||
return {
|
||||
found: true,
|
||||
results_checkAdherent: results_checkAdherent[0],
|
||||
error: false
|
||||
};
|
||||
} else {
|
||||
logger.info("N'est pas adhérent", {label: filename});
|
||||
return { found: false, error: false };
|
||||
}
|
||||
} catch (error) {
|
||||
// Echec de connection à la BD
|
||||
logger.error("Il y a un problème avec la connection à la base de données! : " + error, {label: filename});
|
||||
return { found: false, error: true };
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { checkAdherent };
|
||||
19
modules/db/databaseconnect.js
Normal file
19
modules/db/databaseconnect.js
Normal file
@@ -0,0 +1,19 @@
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
const mysql_promise = require('mysql2/promise');
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// CONNECTION DB
|
||||
////////////////////////////////////////////////////
|
||||
async function connect_DB_promise() {
|
||||
return mysql_promise.createConnection({
|
||||
host: process.env.db_connection_host,
|
||||
port: process.env.db_connection_port,
|
||||
user: process.env.db_connection_user,
|
||||
password: process.env.db_connection_password,
|
||||
database: process.env.db_connection_database
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = { connect_DB_promise };
|
||||
33
modules/db/sqlqueries.js
Normal file
33
modules/db/sqlqueries.js
Normal file
@@ -0,0 +1,33 @@
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
const path = require("path");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES PERSOS
|
||||
/////////////////////////////////////////////////
|
||||
// loggings
|
||||
const logger = require("../../public/js/app/logger");
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// FILE NAME
|
||||
////////////////////////////////////////////////////
|
||||
const filename = path.parse(__filename).base;
|
||||
|
||||
// Fonction qui construit de la requête SQL
|
||||
function generateInsertSQL(tableName, data) {
|
||||
// On récupère les noms des champs
|
||||
const columns = Object.keys(data).join(', ');
|
||||
// on ajoute autant de "?" que de champs
|
||||
const placeholders = Object.keys(data).map(() => '?').join(', ');
|
||||
|
||||
return `INSERT INTO ${tableName} (${columns}) VALUES (${placeholders})`;
|
||||
}
|
||||
|
||||
// Fonction qui récupère la liste des valeurs des champs
|
||||
function extractValues (data) {
|
||||
return Object.values(data);
|
||||
}
|
||||
|
||||
module.exports = { generateInsertSQL, extractValues };
|
||||
|
||||
31
modules/envoie_mail.js
Normal file
31
modules/envoie_mail.js
Normal file
@@ -0,0 +1,31 @@
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../public/js/app/logger");
|
||||
// ENVOIE MAIL GOOGLE MAIL
|
||||
const nodemailer = require('nodemailer');
|
||||
|
||||
|
||||
function envoie_mail(mailOptions) {
|
||||
logger.info("MAIL ENVOI AVANT");
|
||||
var transporter = nodemailer.createTransport({
|
||||
service: 'gmail',
|
||||
auth: {
|
||||
user: process.env.nodemailer_user,
|
||||
pass: process.env.nodemailer_pass
|
||||
}
|
||||
});
|
||||
|
||||
transporter.sendMail(mailOptions, function(error, info){
|
||||
if (error) {
|
||||
logger.info("error" + error);
|
||||
} else {
|
||||
logger.info("Email envoyé: " + info.response);
|
||||
}
|
||||
});
|
||||
logger.info("MAIL ENVOI APRES");
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
envoie_mail
|
||||
}
|
||||
62
modules/pdf.js
Normal file
62
modules/pdf.js
Normal file
@@ -0,0 +1,62 @@
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../public/js/app/logger_concert");
|
||||
|
||||
// ADOBE PDF
|
||||
const PDFServicesSdk = require('@adobe/pdfservices-node-sdk');
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// CONNECTION ADOBE API
|
||||
////////////////////////////////////////////////////
|
||||
|
||||
async function pdfgo(OUTPUT, INPUT, JSON_INPUT) {
|
||||
logger.info("AVANT CREATION DU PDF");
|
||||
|
||||
const credentials = PDFServicesSdk.Credentials
|
||||
.servicePrincipalCredentialsBuilder()
|
||||
.withClientId(process.env.PDF_SERVICES_CLIENT_ID)
|
||||
.withClientSecret(process.env.PDF_SERVICES_CLIENT_SECRET)
|
||||
.build();
|
||||
|
||||
const clientConfig = PDFServicesSdk.ClientConfig
|
||||
.clientConfigBuilder()
|
||||
.withConnectTimeout(20000)
|
||||
.withReadTimeout(40000)
|
||||
.build();
|
||||
|
||||
const executionContext = PDFServicesSdk.ExecutionContext.create(credentials);
|
||||
|
||||
const documentMerge = PDFServicesSdk.DocumentMerge,
|
||||
documentMergeOptions = documentMerge.options,
|
||||
adobe_options = new documentMergeOptions.DocumentMergeOptions(JSON_INPUT, documentMergeOptions.OutputFormat.PDF);
|
||||
|
||||
// Create a new operation instance using the options instance.
|
||||
const documentMergeOperation = documentMerge.Operation.createNew(adobe_options);
|
||||
|
||||
// Set operation input document template from a source file.
|
||||
const input = PDFServicesSdk.FileRef.createFromLocalFile(INPUT);
|
||||
documentMergeOperation.setInput(input);
|
||||
|
||||
// Execute the operation and Save the result to the specified location.
|
||||
await documentMergeOperation
|
||||
.execute(executionContext)
|
||||
.then(result => result.saveAsFile(OUTPUT).then(
|
||||
)
|
||||
)
|
||||
.catch(err => {
|
||||
if(err instanceof PDFServicesSdk.Error.ServiceApiError
|
||||
|| err instanceof PDFServicesSdk.Error.ServiceUsageError) {
|
||||
console.log('Exception encountered while executing ADOBE PDF', err);
|
||||
} else {
|
||||
console.log('Exception encountered while executing ADOBE PDF', err);
|
||||
}
|
||||
});
|
||||
|
||||
logger.info("APRES CREATION DU PDF");
|
||||
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
pdfgo
|
||||
}
|
||||
12
modules/sleep.js
Normal file
12
modules/sleep.js
Normal file
@@ -0,0 +1,12 @@
|
||||
// POUR EVITER DE DÉPASSER LE QUOTA DE GOOGLE API REQUEST PER MINUTE
|
||||
// ON ATTENDS QUELQUES SECONDES
|
||||
const wait = function wait(milliseconds){
|
||||
return new Promise(resolve => {
|
||||
setTimeout(resolve, milliseconds);
|
||||
console.log('Dans le sleep');
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
wait
|
||||
}
|
||||
0
modules/stripe.js
Normal file
0
modules/stripe.js
Normal file
54
modules/verif_codesecret.js
Normal file
54
modules/verif_codesecret.js
Normal file
@@ -0,0 +1,54 @@
|
||||
// SI DATE LIMITE D'INSCRIPTION DÉPASSÉE ON vérifie que le code secret est bien ok
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
const path = require("path");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES PERSOS
|
||||
/////////////////////////////////////////////////
|
||||
// loggings
|
||||
const logger = require("../public/js/app/logger_stagenat");
|
||||
// DB
|
||||
const { connect_DB_promise } = require('../modules/db/databaseconnect');
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// FILE NAME
|
||||
////////////////////////////////////////////////////
|
||||
const filename = path.parse(__filename).base;
|
||||
|
||||
async function verif_codesecret(req, res) {
|
||||
logger.info("/// DÉBUT FONCTION verif_codesecret", { numsession: req.session.id, label: filename});
|
||||
//Connexion
|
||||
let db_connection_promise = await connect_DB_promise();
|
||||
if (req.session.datelimitedepass === "oui") {
|
||||
logger.info("DATE LIMITE DEPASSÉE", { numsession: req.session.id, label: filename});
|
||||
// Query
|
||||
let sql_codesecret = 'select code, statut from code where code = "' + req.session.code_secret + '" AND statut = "actif"';
|
||||
logger.info("sql_codesecret : " + sql_codesecret, { numsession: req.session.id, label: filename});
|
||||
const [results_codesecret, fields] = await db_connection_promise.execute(sql_codesecret);
|
||||
await db_connection_promise.end();
|
||||
logger.info("results_codesecret.length : " + results_codesecret.length, { numsession: req.session.id, label: filename});
|
||||
if (results_codesecret.length) {
|
||||
// on peut continuer
|
||||
req.session.onpeutcontinuer = "oui"
|
||||
|
||||
} else {
|
||||
// CODE SECRET ERRONÉ
|
||||
req.session.onpeutcontinuer = "non"
|
||||
logger.info("Code secret erroné : "+req.session.code_secret, { numsession: req.session.id, label: filename});
|
||||
// ON AFFICHE LA PAGE DE SAISIE DE L'IDENTIFIANT AVEC ERREUR "déjà inscrit"
|
||||
req.session.err_mail_form_adhesion_1 = "Le code inscription <strong>" + req.session.code_secret + "</strong> est erroné.";
|
||||
//res.redirect('/stagenational/identifier');
|
||||
}
|
||||
} else {
|
||||
// on peut continuer
|
||||
req.session.onpeutcontinuer = "oui"
|
||||
}
|
||||
logger.info("/// FIN FONCTION verif_codesecret", { numsession: req.session.id, label: filename});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
verif_codesecret
|
||||
}
|
||||
Reference in New Issue
Block a user