#!/bin/bash # Script de test local pour CRUD Crew Members # Usage: ./test-crew-members-local.sh BASE_URL="http://apiparcapp.test" # Ou si vous utilisez Laravel Herd: BASE_URL="http://apiparcapp.test" # Ou si vous utilisez artisan serve: BASE_URL="http://127.0.0.1:8000" echo "🔐 Étape 1: Login pour obtenir le token..." LOGIN_RESPONSE=$(curl -s -X POST "${BASE_URL}/api/login" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "email": "admin@parcapp.test", "password": "password123" }') echo "RĂ©ponse login: $LOGIN_RESPONSE" TOKEN=$(echo $LOGIN_RESPONSE | grep -o '"token":"[^"]*' | cut -d'"' -f4) if [ -z "$TOKEN" ]; then echo "❌ Erreur: Impossible de rĂ©cupĂ©rer le token. VĂ©rifiez vos credentials." exit 1 fi echo "✅ Token obtenu: ${TOKEN:0:20}..." echo "" echo "📋 Étape 2: GET /api/crew-members (liste vide au dĂ©but)" curl -s -X GET "${BASE_URL}/api/crew-members" \ -H "Authorization: Bearer ${TOKEN}" \ -H "Accept: application/json" | jq '.' || echo "RĂ©ponse (sans jq):" echo "" echo "➕ Étape 3: POST /api/crew-members (crĂ©ation)" CREATE_RESPONSE=$(curl -s -X POST "${BASE_URL}/api/crew-members" \ -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "nom": "OuĂ©draogo", "prenom": "Amadou", "role": "chauffeur", "telephone": "+226 70 12 34 56" }') echo "$CREATE_RESPONSE" | jq '.' || echo "$CREATE_RESPONSE" CREW_MEMBER_ID=$(echo $CREATE_RESPONSE | grep -o '"id":[0-9]*' | cut -d':' -f2) if [ -z "$CREW_MEMBER_ID" ]; then echo "❌ Erreur: Impossible de rĂ©cupĂ©rer l'ID du membre créé." exit 1 fi echo "✅ Membre créé avec ID: $CREW_MEMBER_ID" echo "" echo "đŸ‘ïž Étape 4: GET /api/crew-members/${CREW_MEMBER_ID} (show)" curl -s -X GET "${BASE_URL}/api/crew-members/${CREW_MEMBER_ID}" \ -H "Authorization: Bearer ${TOKEN}" \ -H "Accept: application/json" | jq '.' || echo "RĂ©ponse (sans jq):" echo "" echo "✏ Étape 5: PATCH /api/crew-members/${CREW_MEMBER_ID} (update partiel)" curl -s -X PATCH "${BASE_URL}/api/crew-members/${CREW_MEMBER_ID}" \ -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "telephone": "+226 70 99 88 77" }' | jq '.' || echo "RĂ©ponse (sans jq):" echo "" echo "đŸ“€ Étape 6: POST /api/upload/crew-member-photo (upload - nĂ©cessite un fichier image)" echo "⚠ Note: Cette Ă©tape nĂ©cessite un fichier image. CrĂ©ez un fichier test.jpg ou commentez cette ligne." # curl -s -X POST "${BASE_URL}/api/upload/crew-member-photo" \ # -H "Authorization: Bearer ${TOKEN}" \ # -H "Accept: application/json" \ # -F "photo=@test.jpg" | jq '.' || echo "RĂ©ponse (sans jq):" echo "" echo "📋 Étape 7: GET /api/crew-members (liste avec donnĂ©es)" curl -s -X GET "${BASE_URL}/api/crew-members" \ -H "Authorization: Bearer ${TOKEN}" \ -H "Accept: application/json" | jq '.' || echo "RĂ©ponse (sans jq):" echo "" echo "đŸ—‘ïž Étape 8: DELETE /api/crew-members/${CREW_MEMBER_ID}" DELETE_STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE "${BASE_URL}/api/crew-members/${CREW_MEMBER_ID}" \ -H "Authorization: Bearer ${TOKEN}") if [ "$DELETE_STATUS" = "204" ]; then echo "✅ Suppression rĂ©ussie (status 204)" else echo "❌ Erreur: Status $DELETE_STATUS (attendu: 204)" fi echo "" echo "✅ Tests terminĂ©s!"