diff --git a/db.js b/db.js index 89adcac..4ecb241 100644 --- a/db.js +++ b/db.js @@ -1,6 +1,8 @@ const { Client } = require('pg'); +const devlock = require('./devlock.js'); -let dev = true; +let dev = devlock.is_dev; +console.log('[INFO] Environment:', dev ? 'Development Local' : 'Development Remote'); let client = new Client({ host: '192.168.192.3', diff --git a/devlock.js b/devlock.js new file mode 100644 index 0000000..e485dac --- /dev/null +++ b/devlock.js @@ -0,0 +1,5 @@ +let is_dev = false; // Set to true for development mode + +module.exports = { + is_dev +} \ No newline at end of file diff --git a/package.json b/package.json index 1886d14..0642cfb 100755 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "main": "index.js", "scripts": { "start": "node server.js", - "dev": "nodemon server.js" + "dev": "nodemon server.js", + "local" : "nodemon server_local.js" }, "keywords": [], "author": "", diff --git a/server_local.js b/server_local.js new file mode 100644 index 0000000..ebbb55c --- /dev/null +++ b/server_local.js @@ -0,0 +1,68 @@ +const devlock = require('./devlock.js'); +devlock.is_dev = true; // Set to true for development mode + +// server.js version locale +const express = require('express'); +const cors = require('cors'); +const app = express(); +const port = 3000; + +// Middleware pour gérer les requêtes JSON +app.use(express.json()); + +// Cors accès à tout +app.use(cors({ + origin: ['http://127.0.0.1:5500', 'http://localhost:5500', 'http://localhost:3000'], + methods: ['GET', 'POST', 'PUT', 'DELETE'], + allowedHeaders: ['Content-Type'], + credentials: true, +})); + +// Importer les routes +const apiRoutes = require('./api'); +app.use('/api', apiRoutes); + +// Swagger dependencies +const swaggerUi = require('swagger-ui-express'); +const swaggerJsdoc = require('swagger-jsdoc'); + +// Configuration de Swagger +const swaggerOptions = { + definition: { + openapi: '3.0.0', + info: { + title: 'API Documentation', + version: '1.0.0', + description: 'Documentation de l\'API avec Swagger', + }, + servers: [ + { + url: 'https://timelapse.kerboul.me/api', + }, + { + url: 'http://localhost:3000/api', + } + ], + }, + apis: ['./routes/*.js'], // Prend en compte tous les fichiers de routes pour générer la documentation +}; + +// Initialisation de swagger-jsdoc +const swaggerDocs = swaggerJsdoc(swaggerOptions); + +// Route Swagger UI +app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs)); + +// Route de base pour tester le serveur +app.get('/', (req, res) => { + res.setHeader('Access-Control-Allow-Origin', 'http://localhost:5500'); + res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); + res.setHeader('Access-Control-Allow-Headers', 'Content-Type'); + res.send('Bienvenue sur mon API Node.js!'); +}); + +// Démarrer le serveur +app.listen(port, () => { + console.log(`[SERVER] Serveur démarré sur http://localhost:${port}`); + console.log(`[SERVER] Swagger documentation disponible sur http://localhost:${port}/api-docs`); +});