connexion nouvelle api

This commit is contained in:
balvarez
2026-01-03 21:11:17 +01:00
parent 40ce29753d
commit 4293fa76af
10 changed files with 721 additions and 120 deletions

123
MIGRATION_API.md Normal file
View File

@@ -0,0 +1,123 @@
# Migration du site vers l'API Laravel
Ce document décrit la migration du projet `site` de Supabase vers l'API Laravel.
## Changements effectués
### 1. Remplacement du client Supabase
**Fichier supprimé :**
- `src/lib/supabaseClient.js`
**Fichier créé :**
- `src/lib/apiClient.js` - Client API pour communiquer avec l'API Laravel
### 2. Adaptation des pages
#### OrderPage.jsx
- **Avant :** Utilisait `supabase.functions.invoke('create-checkout-session')`
- **Après :** Utilise `api.stripe.createCheckoutSession()`
- Suppression de l'utilisation de `loadStripe` et `redirectToCheckout` car l'API retourne directement l'URL de checkout
- Simplification du code de redirection vers Stripe
#### ConfirmationPage.jsx
- **Avant :** Utilisait `supabase.functions.invoke('send-order-confirmation-email')`
- **Après :** Utilise `api.orders.confirmOrder()`
### 3. Dépendances
**Supprimé :**
- `@supabase/supabase-js` (plus nécessaire)
**Conservé :**
- `@stripe/stripe-js` (toujours utilisé pour la validation côté client si nécessaire)
## Configuration
### Variables d'environnement
Ajoutez dans votre fichier `.env` :
```env
VITE_API_URL=http://localhost:8000
```
Pour la production, utilisez :
```env
VITE_API_URL=https://api.ditesleenchanson.fr
```
## Structure de l'API Client
Le client API (`apiClient.js`) expose :
### `api.stripe.createCheckoutSession(options)`
Crée une session de checkout Stripe.
**Paramètres :**
- `priceId` (string, requis) - ID du prix Stripe
- `orderData` (object, requis) - Données de la commande
- `successUrl` (string, requis) - URL de succès
- `cancelUrl` (string, requis) - URL d'annulation
- `quantity` (number, optionnel) - Quantité (défaut: 1)
- `customerEmail` (string, optionnel) - Email du client
**Retour :**
```javascript
{
data: {
sessionId: string,
url: string // URL de redirection Stripe
},
error: null | { message: string, status: number }
}
```
### `api.orders.confirmOrder(orderData, sessionId)`
Confirme une commande et envoie les emails.
**Paramètres :**
- `orderData` (object, requis) - Données de la commande
- `sessionId` (string, requis) - ID de session Stripe
**Retour :**
```javascript
{
data: {
success: boolean,
orderId: string,
customerEmail: string,
emailSent: boolean,
customerEmailError: string | null,
adminEmailSent: boolean,
adminEmailError: string | null
},
error: null | { message: string, status: number }
}
```
## Différences avec Supabase
1. **Pas de gestion d'authentification** : Le site n'a pas besoin d'authentification, contrairement au backoffice
2. **URLs directes** : L'API retourne directement l'URL de checkout Stripe, pas besoin de `redirectToCheckout`
3. **Format de réponse** : Les réponses sont structurées différemment mais compatibles avec le code existant
## Tests
Pour tester la migration :
1. Vérifiez que `VITE_API_URL` est correctement configuré
2. Testez le processus de commande complet :
- Sélection d'un produit
- Remplissage du formulaire
- Création de la session Stripe
- Redirection vers Stripe
- Confirmation après paiement
- Réception des emails
## Notes
- Le code de redirection vers Stripe a été simplifié car l'API retourne directement l'URL
- Les données de commande sont toujours stockées dans `localStorage` pour la page de confirmation
- La structure des données reste identique pour assurer la compatibilité