diff --git a/backend/src/docs/swagger.js b/backend/src/docs/swagger.js index a9809e3..510a6cc 100644 --- a/backend/src/docs/swagger.js +++ b/backend/src/docs/swagger.js @@ -10,7 +10,7 @@ const options = { }, servers: [ { - url: "http://localhost:5000", + url: process.env.API_PUBLIC_URL || "http://localhost:5000", }, ], components: { @@ -26,4 +26,4 @@ const options = { apis: ["./src/routes/*.js"], }; -module.exports = swaggerJsdoc(options); \ No newline at end of file +module.exports = swaggerJsdoc(options); diff --git a/frontend/src/services/admin.js b/frontend/src/services/admin.js index bf5bf4f..73da954 100644 --- a/frontend/src/services/admin.js +++ b/frontend/src/services/admin.js @@ -1,3 +1,6 @@ +const API_URL = import.meta.env.VITE_API_URL || '' +const BASE = `${API_URL}/api/admin` + function authHeaders() { return { 'Content-Type': 'application/json', @@ -12,35 +15,35 @@ function apiError(message, status) { } export async function getStatsApi() { - const res = await fetch('/api/admin/stats', { headers: authHeaders() }) + const res = await fetch(`${BASE}/stats`, { headers: authHeaders() }) const data = await res.json() if (!res.ok) throw apiError(data.message || 'Erreur stats.', res.status) return data } export async function getUsersApi() { - const res = await fetch('/api/admin/users', { headers: authHeaders() }) + const res = await fetch(`${BASE}/users`, { headers: authHeaders() }) const data = await res.json() if (!res.ok) throw apiError(data.message || 'Erreur utilisateurs.', res.status) return data } export async function drawWinnerApi() { - const res = await fetch('/api/admin/draw', { method: 'POST', headers: authHeaders() }) + const res = await fetch(`${BASE}/draw`, { method: 'POST', headers: authHeaders() }) const data = await res.json() if (!res.ok) throw apiError(data.message || 'Erreur tirage.', res.status) return data } export async function getEmailingContactsApi() { - const res = await fetch('/api/admin/emailing', { headers: authHeaders() }) + const res = await fetch(`${BASE}/emailing`, { headers: authHeaders() }) const data = await res.json() if (!res.ok) throw apiError(data.message || 'Erreur contacts emailing.', res.status) return data } export async function getWinnerApi() { - const res = await fetch('/api/admin/draw', { headers: authHeaders() }) + const res = await fetch(`${BASE}/draw`, { headers: authHeaders() }) if (res.status === 404) return null const data = await res.json() if (!res.ok) throw apiError(data.message || 'Erreur gagnant.', res.status) diff --git a/frontend/src/services/auth.js b/frontend/src/services/auth.js index eb55d8a..593a1ae 100644 --- a/frontend/src/services/auth.js +++ b/frontend/src/services/auth.js @@ -1,4 +1,5 @@ -const BASE = '/api/auth' +const API_URL = import.meta.env.VITE_API_URL || '' +const BASE = `${API_URL}/api/auth function apiError(message, status) { const err = new Error(message) diff --git a/frontend/src/services/employee.js b/frontend/src/services/employee.js index a127fb0..2db310c 100644 --- a/frontend/src/services/employee.js +++ b/frontend/src/services/employee.js @@ -1,4 +1,5 @@ -const BASE = '/api/employee' +const API_URL = import.meta.env.VITE_API_URL || '' +const BASE = `${API_URL}/api/employee` function authHeaders() { const token = localStorage.getItem('token') diff --git a/frontend/src/services/game.js b/frontend/src/services/game.js index 1312a56..fc81d9c 100644 --- a/frontend/src/services/game.js +++ b/frontend/src/services/game.js @@ -1,3 +1,7 @@ +const API_URL = import.meta.env.VITE_API_URL || '' +const BASE = `${API_URL}/api/game` + + function apiError(message, status) { const err = new Error(message) err.status = status @@ -6,7 +10,7 @@ function apiError(message, status) { export async function myGainsApi() { const token = localStorage.getItem('token') - const res = await fetch('/api/game/my-gains', { + const res = await fetch(`${BASE}/my-gains`, { headers: { Authorization: `Bearer ${token}` }, }) const data = await res.json() @@ -16,7 +20,7 @@ export async function myGainsApi() { export async function participateApi(code) { const token = localStorage.getItem('token') - const res = await fetch('/api/game/participate', { + const res = await fetch(`${BASE}/participate`, { method: 'POST', headers: { 'Content-Type': 'application/json',