merge: integrate Emmanuel changes into main

This commit is contained in:
2026-09-17 18:36:09 +00:00
108 changed files with 4335 additions and 515 deletions

View File

@@ -59,3 +59,38 @@ export async function setGameSettingsApi(startDate) {
if (!res.ok) throw apiError(data.message || 'Erreur configuration du jeu.', res.status)
return data
}
export async function getEmployeesApi() {
const res = await fetch(`${BASE}/employees`, { headers: authHeaders() })
const data = await res.json()
if (!res.ok) throw apiError(data.message || 'Erreur lors du chargement des employés.', res.status)
return data
}
export async function getEmployeeDeliveriesApi(employeeId) {
const res = await fetch(`${BASE}/employees/${employeeId}/deliveries`, { headers: authHeaders() })
const data = await res.json()
if (!res.ok) throw apiError(data.message || 'Erreur lors du chargement des remises.', res.status)
return data
}
export async function getDeliveryByTicketCodeApi(code) {
const res = await fetch(`${BASE}/deliveries/${encodeURIComponent(code.trim())}`, { headers: authHeaders() })
const data = await res.json()
if (!res.ok) throw apiError(data.message || 'Erreur lors de la recherche du ticket.', res.status)
return data
}
// Pas de mot de passe : le serveur en génère un provisoire et l'envoie par
// email à l'employé.
export async function createEmployeeApi({ firstname, lastname, email }) {
const res = await fetch(`${BASE}/employees`, {
method: 'POST',
headers: authHeaders(),
body: JSON.stringify({ firstname, lastname, email }),
})
const data = await res.json()
if (!res.ok) throw apiError(data.message || "Erreur lors de la création de l'employé.", res.status)
return data
}