mise a jour
This commit is contained in:
@@ -5,24 +5,30 @@ function authHeaders() {
|
||||
}
|
||||
}
|
||||
|
||||
function apiError(message, status) {
|
||||
const err = new Error(message)
|
||||
err.status = status
|
||||
return err
|
||||
}
|
||||
|
||||
export async function getStatsApi() {
|
||||
const res = await fetch('/api/admin/stats', { headers: authHeaders() })
|
||||
const data = await res.json()
|
||||
if (!res.ok) throw new Error(data.message || 'Erreur stats.')
|
||||
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 data = await res.json()
|
||||
if (!res.ok) throw new Error(data.message || 'Erreur utilisateurs.')
|
||||
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 data = await res.json()
|
||||
if (!res.ok) throw new Error(data.message || 'Erreur tirage.')
|
||||
if (!res.ok) throw apiError(data.message || 'Erreur tirage.', res.status)
|
||||
return data
|
||||
}
|
||||
|
||||
@@ -30,6 +36,6 @@ export async function getWinnerApi() {
|
||||
const res = await fetch('/api/admin/draw', { headers: authHeaders() })
|
||||
if (res.status === 404) return null
|
||||
const data = await res.json()
|
||||
if (!res.ok) throw new Error(data.message || 'Erreur gagnant.')
|
||||
if (!res.ok) throw apiError(data.message || 'Erreur gagnant.', res.status)
|
||||
return data
|
||||
}
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
const BASE = '/api/auth'
|
||||
|
||||
function apiError(message, status) {
|
||||
const err = new Error(message)
|
||||
err.status = status
|
||||
return err
|
||||
}
|
||||
|
||||
export async function loginApi({ email, password }) {
|
||||
const res = await fetch(`${BASE}/login`, {
|
||||
method: 'POST',
|
||||
@@ -7,7 +13,7 @@ export async function loginApi({ email, password }) {
|
||||
body: JSON.stringify({ email, password }),
|
||||
})
|
||||
const data = await res.json()
|
||||
if (!res.ok) throw new Error(data.message || 'Erreur de connexion.')
|
||||
if (!res.ok) throw apiError(data.message || 'Erreur de connexion.', res.status)
|
||||
return data
|
||||
}
|
||||
|
||||
@@ -18,6 +24,21 @@ export async function registerApi({ email, firstname, lastname, password }) {
|
||||
body: JSON.stringify({ email, firstname, lastname, password }),
|
||||
})
|
||||
const data = await res.json()
|
||||
if (!res.ok) throw new Error(data.message || "Erreur lors de l'inscription.")
|
||||
if (!res.ok) throw apiError(data.message || "Erreur lors de l'inscription.", res.status)
|
||||
return data
|
||||
}
|
||||
|
||||
export async function changePasswordApi({ currentPassword, newPassword }) {
|
||||
const token = localStorage.getItem('token')
|
||||
const res = await fetch(`${BASE}/change-password`, {
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
body: JSON.stringify({ currentPassword, newPassword }),
|
||||
})
|
||||
const data = await res.json()
|
||||
if (!res.ok) throw apiError(data.message || 'Erreur lors du changement de mot de passe.', res.status)
|
||||
return data
|
||||
}
|
||||
|
||||
31
frontend/src/services/employee.js
Normal file
31
frontend/src/services/employee.js
Normal file
@@ -0,0 +1,31 @@
|
||||
const BASE = '/api/employee'
|
||||
|
||||
function authHeaders() {
|
||||
const token = localStorage.getItem('token')
|
||||
return { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }
|
||||
}
|
||||
|
||||
function apiError(message, status) {
|
||||
const err = new Error(message)
|
||||
err.status = status
|
||||
return err
|
||||
}
|
||||
|
||||
export async function searchTicketApi(code) {
|
||||
const res = await fetch(`${BASE}/ticket/${encodeURIComponent(code.toUpperCase())}`, {
|
||||
headers: authHeaders(),
|
||||
})
|
||||
const data = await res.json()
|
||||
if (!res.ok) throw apiError(data.message || 'Erreur lors de la recherche.', res.status)
|
||||
return data
|
||||
}
|
||||
|
||||
export async function deliverClaimApi(claimId) {
|
||||
const res = await fetch(`${BASE}/claim/${claimId}/deliver`, {
|
||||
method: 'PATCH',
|
||||
headers: authHeaders(),
|
||||
})
|
||||
const data = await res.json()
|
||||
if (!res.ok) throw apiError(data.message || 'Erreur lors de la remise.', res.status)
|
||||
return data
|
||||
}
|
||||
@@ -1,10 +1,16 @@
|
||||
function apiError(message, status) {
|
||||
const err = new Error(message)
|
||||
err.status = status
|
||||
return err
|
||||
}
|
||||
|
||||
export async function myGainsApi() {
|
||||
const token = localStorage.getItem('token')
|
||||
const res = await fetch('/api/game/my-gains', {
|
||||
headers: { Authorization: `Bearer ${token}` },
|
||||
})
|
||||
const data = await res.json()
|
||||
if (!res.ok) throw new Error(data.message || 'Erreur lors de la récupération des gains.')
|
||||
if (!res.ok) throw apiError(data.message || 'Erreur lors de la récupération des gains.', res.status)
|
||||
return data
|
||||
}
|
||||
|
||||
@@ -19,6 +25,6 @@ export async function participateApi(code) {
|
||||
body: JSON.stringify({ code }),
|
||||
})
|
||||
const data = await res.json()
|
||||
if (!res.ok) throw new Error(data.message || 'Erreur lors de la participation.')
|
||||
if (!res.ok) throw apiError(data.message || 'Erreur lors de la participation.', res.status)
|
||||
return data
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user