Ajout page login non fonctionnelle
This commit is contained in:
158
GTFRRH/project/backend/config/serv.js
Normal file
158
GTFRRH/project/backend/config/serv.js
Normal file
@@ -0,0 +1,158 @@
|
||||
const express = require('express');
|
||||
const cors = require('cors');
|
||||
const sql = require('mssql');
|
||||
require('dotenv').config();
|
||||
|
||||
const app = express();
|
||||
const PORT = 3002;
|
||||
|
||||
// Configuration base de données
|
||||
const dbConfig = {
|
||||
server: process.env.DB_SERVER,
|
||||
database: process.env.DB_DATABASE,
|
||||
user: process.env.DB_USER,
|
||||
password: process.env.DB_PASSWORD,
|
||||
options: {
|
||||
encrypt: true,
|
||||
trustServerCertificate: true,
|
||||
enableArithAbort: true
|
||||
}
|
||||
};
|
||||
|
||||
// Middleware
|
||||
app.use(cors({
|
||||
origin: ['http://localhost:5173', 'http://localhost:5174', 'http://localhost:3000', 'http://127.0.0.1:5173', 'http://127.0.0.1:5174'],
|
||||
credentials: true
|
||||
}));
|
||||
app.use(express.json());
|
||||
|
||||
// Log de toutes les requêtes
|
||||
app.use((req, res, next) => {
|
||||
console.log(`${new Date().toISOString()} - ${req.method} ${req.path} depuis ${req.get('origin') || 'inconnu'}`);
|
||||
next();
|
||||
});
|
||||
|
||||
// Variable pour stocker la connexion
|
||||
let pool = null;
|
||||
|
||||
// Fonction pour se connecter à la base
|
||||
async function connectDatabase() {
|
||||
try {
|
||||
pool = await sql.connect(dbConfig);
|
||||
console.log('Base de données connectée');
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('Erreur de connexion :', error.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Route de test
|
||||
app.get('/api/test', (req, res) => {
|
||||
res.json({
|
||||
message: 'Le serveur fonctionne !',
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
});
|
||||
|
||||
// Route pour tester la base de données
|
||||
app.get('/api/db-test', async (req, res) => {
|
||||
try {
|
||||
if (!pool) {
|
||||
return res.status(500).json({ error: 'Base non connectée' });
|
||||
}
|
||||
|
||||
const result = await pool.request().query('SELECT COUNT(*) as total FROM FormateurSqy');
|
||||
res.json({
|
||||
message: 'Base OK',
|
||||
formateurs: result.recordset[0].total
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
// Route pour mettre à jour le statut d'une déclaration
|
||||
app.put('/api/declarations/:id/status', async (req, res) => {
|
||||
try {
|
||||
const { id } = req.params;
|
||||
const { status } = req.body;
|
||||
|
||||
await pool.request()
|
||||
.input('id', sql.Int, id)
|
||||
.input('status', sql.VarChar, status)
|
||||
.query('UPDATE declarations SET status = @status WHERE id = @id');
|
||||
|
||||
res.json({ success: true, message: 'Statut mis à jour' });
|
||||
} catch (error) {
|
||||
res.status(500).json({ success: false, error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Modifier votre route existante
|
||||
// Remplacez la route existante par :
|
||||
app.get('/api/get_declarations', async (req, res) => {
|
||||
try {
|
||||
console.log('Récupération des déclarations...');
|
||||
|
||||
const result = await pool.request().query(`
|
||||
SELECT
|
||||
d.id,
|
||||
d.formateur_numero as utilisateur_id,
|
||||
td.id as type_demande_id,
|
||||
d.date,
|
||||
d.duree,
|
||||
d.description,
|
||||
d.formateur_numero,
|
||||
'pending' as status,
|
||||
td.libelle as activityType,
|
||||
f.NOM_ENS as nom,
|
||||
f.PRENOM_ENS as prenom,
|
||||
'Non défini' as campus
|
||||
FROM declarations d
|
||||
INNER JOIN types_demandes td ON d.type_demande_id = td.id
|
||||
LEFT JOIN FormateurSqy f ON d.formateur_numero = f.NUMERO
|
||||
ORDER BY d.date DESC
|
||||
`);
|
||||
|
||||
console.log(`${result.recordset.length} déclarations trouvées`);
|
||||
res.json(result.recordset);
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la récupération:', error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Démarrage du serveur
|
||||
async function startServer() {
|
||||
const dbConnected = await connectDatabase();
|
||||
|
||||
if (!dbConnected) {
|
||||
console.log('Impossible de démarrer sans base de données');
|
||||
return;
|
||||
}
|
||||
|
||||
app.listen(PORT, () => {
|
||||
console.log(`Serveur démarré sur http://localhost:${PORT}`);
|
||||
console.log('Routes disponibles :');
|
||||
console.log('- GET /api/test');
|
||||
console.log('- GET /api/db-test');
|
||||
console.log('- GET /api/get_declarations');
|
||||
console.log('- PUT /api/declarations/:id/status');
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
// Arrêt propre
|
||||
process.on('SIGINT', async () => {
|
||||
console.log('Arrêt du serveur...');
|
||||
if (pool) {
|
||||
await pool.close();
|
||||
}
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
// Démarrer
|
||||
startServer();
|
||||
Reference in New Issue
Block a user