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

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') 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 :

# 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) :
cd backoffice/src
npm install
  1. Configurer le fichier .env avec l'URL de l'API

  2. Démarrer le serveur de développement :

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