-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.ts
More file actions
88 lines (79 loc) · 4.03 KB
/
Copy pathserver.ts
File metadata and controls
88 lines (79 loc) · 4.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import bodyParser from 'body-parser';
import cors from 'cors';
import express from 'express';
import dotenv from 'dotenv';
import path from 'path';
import { initChallenge } from './src/database/initdb/initChallenge';
import { initUser } from './src/database/initdb/initUser';
import { initEvent } from './src/database/initdb/initevent';
import { initRoles } from './src/database/initdb/initrole';
import { authenticateUser } from './src/middlewares/auth.middleware';
import { authenticateAutomation } from './src/middlewares/automation.middleware';
import authRoutes from './src/routes/auth.routes';
import automationRoutes from './src/routes/automation.routes';
import busRoutes from './src/routes/bus.routes';
import challengeRoutes from './src/routes/challenge.routes';
import defaultRoute from './src/routes/default.routes';
import discordRoutes from './src/routes/discord.routes';
import emailRoutes from './src/routes/email.routes';
import eventRoutes from './src/routes/event.routes';
import factionRoutes from './src/routes/faction.routes';
import imexportRouter from './src/routes/im_export.routes';
import newsRoutes from './src/routes/news.routes';
import permanenceRoutes from './src/routes/permanences.routes';
import roleRoutes from './src/routes/role.routes';
import teamRoutes from './src/routes/team.routes';
import tentRoutes from './src/routes/tent.routes';
import userRoutes from './src/routes/user.routes';
import bannedRoutes from './src/routes/banned.routes';
import { server_port } from './src/shared/secrets/secrets';
import { initQcmvss } from './src/database/initdb/initQcmvss';
dotenv.config();
async function startServer() {
const app = express();
// Configuration des middlewares
app.use(cors({ origin: '*' }));
app.use(bodyParser.json());
app.use(express.urlencoded({ extended: true }));
try {
// Initialisation de la base de données
await initUser();
await initRoles();
await initEvent();
await initChallenge();
await initQcmvss();
console.log('Base de données initialisée avec succès.');
// Utilisation des routes d'authentification
app.use('/api', defaultRoute);
app.use('/api/auth', authRoutes);
app.use('/api/automation', authenticateAutomation, automationRoutes);
app.use('/api/authadmin', authenticateUser, authRoutes);
app.use('/api/banned', authenticateUser, bannedRoutes);
app.use('/api/role', authenticateUser, roleRoutes);
app.use('/api/user', authenticateUser, userRoutes);
app.use('/api/team', authenticateUser, teamRoutes);
app.use('/api/event', authenticateUser, eventRoutes);
app.use('/api/faction', authenticateUser, factionRoutes);
app.use('/api/imexport', authenticateUser, imexportRouter);
app.use('/api/permanence', authenticateUser, permanenceRoutes);
app.use('/api/challenge', authenticateUser, challengeRoutes);
app.use('/api/email', authenticateUser, emailRoutes);
app.use('/api/news', authenticateUser, newsRoutes);
app.use('/api/discord', authenticateUser, discordRoutes);
app.use('/api/tent', authenticateUser, tentRoutes);
app.use('/api/bus', authenticateUser, busRoutes);
app.use('/api/uploads/news', express.static(path.join(__dirname, '/uploads/news')));
app.use('/api/uploads/notebooks', express.static(path.join(__dirname, '/uploads/notebooks')));
app.use('/api/uploads/foodmenu', express.static(path.join(__dirname, '/uploads/foodmenu')));
app.use('/api/uploads/plannings', express.static(path.join(__dirname, '/uploads/plannings')));
app.use('/api/exports/bus', express.static(path.join(__dirname, '/exports/bus')));
// Démarrage du serveur
app.listen(server_port, () => {
console.log(`Server running on port ${server_port}`);
});
} catch (err) {
console.error("Erreur lors de l'initialisation de la base de données :", err);
process.exit(1); // Arrêter le serveur si l'initialisation échoue
}
}
startServer();