]> git.digitality.be Git - pdw25-26/commitdiff
passage a import (module Alert)
authorSteph Ponzo <ponzo.stephane2@gmail.com>
Mon, 9 Feb 2026 21:14:24 +0000 (22:14 +0100)
committerSteph Ponzo <ponzo.stephane2@gmail.com>
Mon, 9 Feb 2026 21:14:24 +0000 (22:14 +0100)
system_notification/config/db.js
system_notification/package.json
system_notification/repositories/MySqlAlertRepository.js
system_notification/services/channels/mailer.js
system_notification/test-connection.js
system_notification/test-mailer.js

index dd9c6803441a834ceb5ae73a1eab0a12e9f3c91b..38d154682cc815dd639538a0118768e5e6f6687e 100644 (file)
@@ -1,7 +1,14 @@
-const mysql = require('mysql2/promise');
-// CORRECTION : On pointe simplement vers le .env à la racine du projet
-const path = require('path');
-require('dotenv').config({ path: path.resolve(__dirname, '../.env') });
+import mysql from 'mysql2/promise';
+import dotenv from 'dotenv';
+import path from 'path';
+import { fileURLToPath } from 'url';
+
+// On recrée __dirname qui n'existe pas en mode "module"
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+
+// On charge le .env
+dotenv.config({ path: path.resolve(__dirname, '../.env') });
 
 const db = mysql.createPool({
     host: process.env.DB_HOST,
@@ -14,4 +21,4 @@ const db = mysql.createPool({
     queueLimit: 0
 });
 
-module.exports = db;
+export default db;
index 6dbc23ee958e5eb31e92d201c0d2b72ad8a014d0..c1235172d8b9b14ca02345679ca3f8f27d4575eb 100644 (file)
@@ -1,6 +1,7 @@
 {
   "name": "system_notification",
   "version": "1.0.0",
+  "type": "module",
   "description": "",
   "main": "test-connection.js",
   "scripts": {
@@ -9,7 +10,6 @@
   "keywords": [],
   "author": "",
   "license": "ISC",
-  "type": "commonjs",
   "dependencies": {
     "dotenv": "^17.2.4",
     "mysql2": "^3.16.3",
index e9936785c2f552e0cead862cc6438195ce8cdc76..edebf2b6ec149400c01f8e8ab01a7c9856cd352e 100644 (file)
@@ -1,5 +1,5 @@
 // 1. On importe la connexion à la base de données
-const db = require('../config/db');
+import db from '../config/db.js';
 
 const MySqlAlertRepository = {
 
@@ -32,4 +32,4 @@ const MySqlAlertRepository = {
 };
 
 // 3. On exporte le repository
-module.exports = MySqlAlertRepository;
+export default MySqlAlertRepository;
index 6bd8321b45f2a0e40bf2176620d0e3469f91c9e9..b255c950f7a919f133870462635b8151c6ebc5a1 100644 (file)
@@ -1,7 +1,7 @@
-const nodemailer = require('nodemailer');
+import nodemailer from 'nodemailer';
 
 
-async function sendAlertEmail(to, signal) {
+export async function sendAlertEmail(to, signal) {
     const transporter = nodemailer.createTransport({
         host: process.env.MAIL_HOST,
         port: parseInt(process.env.MAIL_PORT),
@@ -29,4 +29,4 @@ async function sendAlertEmail(to, signal) {
     }
 }
 
-module.exports = { sendAlertEmail };
+
index d7ce0e1a1157054879094838e34993734a2f4171..da2b74198890fb18a9a1ae5c70090dcb37d1ce17 100644 (file)
@@ -1,26 +1,24 @@
-const repository = require('./repositories/MySqlAlertRepository');
+import repository from './repositories/MySqlAlertRepository.js'; // Note le .js obligatoire !
 
 async function test() {
     console.log("Tentative de connexion à MariaDB...");
 
     try {
         const rules = await repository.findActiveRules();
-        console.log("Connexion réussie !");
-        console.log(`Nombre de règles actives trouvées : ${rules.length}`);
+        console.log("✅ Connexion réussie !");
+        console.log(`📊 Nombre de règles actives trouvées : ${rules.length}`);
 
         if (rules.length > 0) {
-        console.log("Détail de la première règle :", rules[0]);
+            console.log("Détail de la première règle :", rules[0]);
         } else {
-        console.log("La connexion marche, mais la table 'alert_rules' est vide;");
+            console.log("La connexion marche, mais la table 'alert_rules' est vide.");
         }
 
     } catch (error) {
-        console.error("ÉCHEC du test :");
-        console.error("- Vérifie ton fichier .env (User, Password, Host)");
-        console.error("- Vérifie que tu es bien connecté au VPN si nécessaire");
+        console.error("❌ ÉCHEC du test :");
         console.error("Détail de l'erreur :", error.message);
     } finally {
-        process.exit(); // On ferme le script proprement
+        process.exit();
     }
 }
 
index 187f324f09a8df51b4d5fd71d6a8a2ba194ad3fe..7f6670c0fefb8fe1b9b147fde73d42ee71568e53 100644 (file)
@@ -1,33 +1,41 @@
-require('dotenv').config();
+import dotenv from 'dotenv';
+import path from 'path';
+import { fileURLToPath } from 'url';
+import repository from './repositories/MySqlAlertRepository.js';
+import { sendAlertEmail } from './services/channels/mailer.js';
 
-const repository = require('./repositories/MySqlAlertRepository');
-const { sendAlertEmail } = require('./services/channels/mailer');
+// Configuration nécessaire pour retrouver __dirname en mode "import"
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+
+// Chargement des variables d'environnement
+dotenv.config({ path: path.resolve(__dirname, '.env') });
 
 async function runTest() {
-    console.log("Recherche d'une règle active dans la DB...");
+    console.log("🔍 Recherche d'une règle active dans la DB...");
 
     try {
         const rules = await repository.findActiveRules();
 
         if (rules.length === 0) {
-        console.log("Aucune règle trouvée. Vérifie tes tables SQL.");
-        return;
+            console.log("⚠️ Aucune règle trouvée. Vérifie tes tables SQL.");
+            return;
         }
 
         const rule = rules[0];
-        console.log(`Règle trouvée pour : ${rule.email}`);
+        console.log(`✅ Règle trouvée pour : ${rule.email}`);
 
         // On simule un signal de test
         const fakeSignal = {
-        action: 'BUY',
-        pair: 'BTC/EUR',
-        confidence: 0.85,
-        severity: 'WARNING'
+            action: 'BUY',
+            pair: 'BTC/EUR',
+            confidence: 0.85,
+            severity: 'WARNING'
         };
 
         console.log("✉️ Tentative d'envoi du mail...");
-        const mailerModule = require('./services/channels/mailer');
-        console.log("Contenu du module mailer :", mailerModule); // Ajoute cette ligne pour débugger
+
+        // Appel direct de la fonction importée (plus de require ici !)
         const status = await sendAlertEmail(rule.email, fakeSignal);
 
         console.log(`📊 Résultat de l'envoi : ${status}`);
@@ -40,4 +48,3 @@ async function runTest() {
 }
 
 runTest();
-