Files
backoffice/MIGRATION_API.md
2026-01-03 19:56:21 +01:00

75 lines
2.3 KiB
Markdown

# Migration du Backoffice vers l'API Laravel
Ce document décrit les changements effectués pour migrer le backoffice de Supabase vers l'API Laravel.
## Changements effectués
### 1. Remplacement de Supabase par un client API personnalisé
- **Supprimé** : `src/lib/supabaseClient.js`
- **Créé** : `src/lib/apiClient.js` - Client API pour communiquer avec l'API Laravel
### 2. Adaptation de l'authentification
- **Fichier modifié** : `src/contexts/AuthContext.jsx`
- **Changement** : Remplacement de `supabase.functions.invoke('verify-admin-password')` par `api.auth.login()`
### 3. Adaptation du dashboard
- **Fichier modifié** : `src/pages/DashboardPage.jsx`
- **Changements** :
- Remplacement de `supabase.from('orders').select()` par `api.orders.getOrders()`
- Remplacement de `supabase.functions.invoke('update-order-status')` par `api.orders.updateStatus()`
- Utilisation de `api.orders.getMetrics()` pour les métriques au lieu de récupérer toutes les commandes
### 4. Suppression des dépendances Supabase
- **Supprimé** : `@supabase/supabase-js` du `package.json`
## Configuration
### Variables d'environnement
Créez un fichier `.env` dans `backoffice/src/` avec :
```env
# URL de l'API Laravel
# En développement local : http://localhost:8000
# En production : https://api.ditesleenchanson.fr
VITE_API_URL=http://localhost:8000
```
### Installation
1. Installer les dépendances (sans Supabase) :
```bash
cd backoffice/src
npm install
```
2. Configurer le fichier `.env` avec l'URL de l'API
3. Démarrer le serveur de développement :
```bash
npm run dev
```
## API Endpoints utilisés
- `POST /auth/admin/login` - Authentification admin
- `GET /orders` - Liste des commandes avec pagination
- `GET /orders/metrics` - Métriques des commandes
- `POST /orders/{orderId}/status` - Mise à jour du statut d'une commande
## Authentification
Le token d'authentification est stocké dans `localStorage` sous la clé `admin_auth_token` et est envoyé dans le header `Authorization: Bearer {token}` pour les requêtes protégées.
## Notes
- Le format des réponses de l'API a été adapté pour correspondre au format Supabase utilisé précédemment
- Les métriques incluent maintenant les revenus par statut (pendingRevenue, processingRevenue, completedRevenue)
- La pagination fonctionne de la même manière qu'avec Supabase