index.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. const express = require('express');
  2. const bodyparser = require('body-parser');
  3. const passport = require('passport');
  4. const mongoose = require('mongoose');
  5. const session = require('express-session');
  6. const cors = require('cors');
  7. const { TextEncoder, TextDecoder } = require('util');
  8. global.TextEncoder = TextEncoder;
  9. global.TextDecoder = TextDecoder;
  10. // const config = require('./config/db.config');
  11. const userRoutes = require('./routes/user');
  12. const employeeRoutes = require('./routes/employee');
  13. const authRoutes = require('./routes/auth');
  14. //const oauthRoutes = require('./routes/oauth');
  15. const ticketRoutes = require('./routes/ticket');
  16. const emailsRoutes = require('./routes/emailing');
  17. const authGoogle = require('./routes/google');
  18. const authFacebook = require('./routes/facebook');
  19. const tirageRoutes = require('./routes/tirage');
  20. const contactRoutes = require('./routes/contact');
  21. const restaurantRoutes = require('./routes/restaurant');
  22. const Logger = require('./logging')
  23. //metrics
  24. const makeApiMiddleware = require("api-express-exporter");
  25. //const apiMetrics = require('prometheus-api-metrics');
  26. const promBundle = require("express-prom-bundle");
  27. const metricsMiddleware = promBundle({includeMethod: true, includePath: true});
  28. const app = express();
  29. // Configure CORS
  30. app.use(cors({
  31. origin: 'https://angular-preprod.foodgame.fr', // Remplacez par l'URL de votre frontend Angular
  32. optionsSuccessStatus: 200 // Facultatif : indique le statut de succès pour les pré-vérifications OPTIONS
  33. }));
  34. Logger.error('hello world', 'Nan c est juste pour tester les logs')
  35. app.use(metricsMiddleware);
  36. //app.use(apiMetrics());
  37. //metrics
  38. app.use(makeApiMiddleware());
  39. //app.use(cors());
  40. app.get("/api", (req, res) => {
  41. res.status(200).send("Api Works.");
  42. });
  43. //Définition des CORS Middleware
  44. // app.use(function(req, res, next) {
  45. // //res.header("Access-Control-Allow-Origin", "*");
  46. // res.setHeader("Access-Control-Allow-Origin", "*");
  47. // res.setHeader(
  48. // "Access-Control-Allow-Headers",
  49. // "X-Requested-With,content-type, Accept,Authorization,Origin"
  50. // );
  51. // res.setHeader(
  52. // "Access-Control-Allow-Methods",
  53. // "GET, POST, OPTIONS, PUT, PATCH, DELETE"
  54. // );
  55. // res.setHeader("Access-Control-Allow-Credentials", true);
  56. // next();
  57. // });
  58. // Middleware pour définir le type de contenu des réponses
  59. app.use((req, res, next) => {
  60. res.setHeader('Content-Type', 'application/json');
  61. next();
  62. });
  63. // parse requests body params
  64. app.use(bodyparser.json());
  65. app.use(bodyparser.urlencoded({extended: true}));
  66. //app.use(cookiePrser());
  67. app.use(express.urlencoded({ extended: true}));
  68. app.use(
  69. session({
  70. secret: "this_is_a_secret",
  71. resave: true,
  72. saveUnitialized: true,
  73. rolling: true, // forces resetting of max age
  74. cookie: {
  75. maxAge: 360000,
  76. secure: false // this should be true only when you don't want to show it for security reason
  77. }
  78. })
  79. );
  80. app.use(passport.initialize());
  81. //app.use(passport.session());
  82. //simple route
  83. app.use('/api/users', userRoutes );
  84. app.use('/api/employees', employeeRoutes );
  85. app.use('/api/tickets', ticketRoutes );
  86. app.use('/api/auth', authRoutes );
  87. //app.use('/api/auth', oauthRoutes );
  88. //app.use('/api/auth', authGoogle );
  89. app.use('/api/emails', emailsRoutes );
  90. app.use('/api/auth/google', authGoogle );
  91. app.use('/api/auth/facebook', authFacebook );
  92. app.use('/api/tirage', tirageRoutes );
  93. app.use('/api/contact', contactRoutes );
  94. app.use('/api/restaurants', restaurantRoutes );
  95. //connexion database
  96. require('./lib/db');
  97. //listen for requests
  98. const PORT = process.env.PORT || 4000;
  99. app.listen(PORT, () => {
  100. console.log(`Api listen on port ${PORT}.`);
  101. });