index.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. const express = require('express');
  2. const compression = require('compression');
  3. const bodyParser = require('body-parser');
  4. const passport = require('passport');
  5. const mongoose = require('mongoose');
  6. const session = require('express-session');
  7. const cors = require('cors');
  8. const { createProxyMiddleware } = require('http-proxy-middleware');
  9. const { TextEncoder, TextDecoder } = require('util');
  10. global.TextEncoder = TextEncoder;
  11. global.TextDecoder = TextDecoder;
  12. // Import des routes (conservez toutes vos routes existantes)
  13. const userRoutes = require('./routes/user');
  14. const employeeRoutes = require('./routes/employee');
  15. const authRoutes = require('./routes/auth');
  16. const ticketRoutes = require('./routes/ticket');
  17. const emailsRoutes = require('./routes/emailing');
  18. const authGoogle = require('./routes/google');
  19. const authFacebook = require('./routes/facebook');
  20. const tirageRoutes = require('./routes/tirage');
  21. const contactRoutes = require('./routes/contact');
  22. const restaurantRoutes = require('./routes/restaurant');
  23. const app = express();
  24. // Middlewares (conservés inchangés)
  25. app.use(compression());
  26. app.use(bodyParser.json());
  27. app.use(bodyParser.urlencoded({ extended: true }));
  28. app.use(express.urlencoded({ extended: true }));
  29. // CORS (configuration d'origine conservée)
  30. app.use(cors({
  31. origin: 'https://angular-preprod.foodgame.fr',
  32. optionsSuccessStatus: 200
  33. }));
  34. // Session (conservée inchangée)
  35. app.use(session({
  36. secret: 'this_is_a_secret',
  37. resave: true,
  38. saveUninitialized: true,
  39. rolling: true,
  40. cookie: {
  41. maxAge: 360000,
  42. secure: false
  43. }
  44. }));
  45. app.use(passport.initialize());
  46. // Proxy vers Angular SSR (modifié pour exclure /api)
  47. app.use('/', createProxyMiddleware({
  48. target: 'http://angular_ssr_preprod:4000',
  49. changeOrigin: true,
  50. pathFilter: (path) => !path.startsWith('/api')
  51. }));
  52. // Routes API (conservées inchangées)
  53. app.get('/api', (req, res) => {
  54. res.status(200).send('Api Works.');
  55. });
  56. app.use('/api/users', userRoutes);
  57. app.use('/api/employees', employeeRoutes);
  58. app.use('/api/tickets', ticketRoutes);
  59. app.use('/api/auth', authRoutes);
  60. app.use('/api/emails', emailsRoutes);
  61. app.use('/api/auth/google', authGoogle);
  62. app.use('/api/auth/facebook', authFacebook);
  63. app.use('/api/tirage', tirageRoutes);
  64. app.use('/api/contact', contactRoutes);
  65. app.use('/api/restaurants', restaurantRoutes);
  66. // Connexion MongoDB (conservée inchangée)
  67. require('./lib/db');
  68. const PORT = process.env.PORT || 4000;
  69. app.listen(PORT, () => {
  70. console.log(`Api listen on port ${PORT}.`);
  71. });