2.3 KiB
2.3 KiB
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')parapi.auth.login()
3. Adaptation du dashboard
- Fichier modifié :
src/pages/DashboardPage.jsx - Changements :
- Remplacement de
supabase.from('orders').select()parapi.orders.getOrders() - Remplacement de
supabase.functions.invoke('update-order-status')parapi.orders.updateStatus() - Utilisation de
api.orders.getMetrics()pour les métriques au lieu de récupérer toutes les commandes
- Remplacement de
4. Suppression des dépendances Supabase
- Supprimé :
@supabase/supabase-jsdupackage.json
Configuration
Variables d'environnement
Créez un fichier .env dans backoffice/src/ avec :
# 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
- Installer les dépendances (sans Supabase) :
cd backoffice/src
npm install
-
Configurer le fichier
.envavec l'URL de l'API -
Démarrer le serveur de développement :
npm run dev
API Endpoints utilisés
POST /auth/admin/login- Authentification adminGET /orders- Liste des commandes avec paginationGET /orders/metrics- Métriques des commandesPOST /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