$httpCode, 'response' => json_decode($response, true) ]; } // Tests echo "=== Tests de support des temp_id dans l'API Chat ===\n\n"; // Test 1: Création d'une room avec temp_id echo "Test 1: Création d'une room avec temp_id\n"; $roomData = [ 'type' => 'private', 'participants' => [2], // ID d'un autre utilisateur 'title' => 'Test Room Offline', 'temp_id' => 'temp_room_' . uniqid() ]; echo "Requête POST /chat/rooms avec temp_id: {$roomData['temp_id']}\n"; $result = makeRequest('POST', '/chat/rooms', $roomData, $sessionId); if ($result['code'] === 201 && isset($result['response']['room']['temp_id'])) { echo "✅ Succès: Room créée avec temp_id retourné\n"; echo " - ID réel: " . $result['response']['room']['id'] . "\n"; echo " - temp_id: " . $result['response']['room']['temp_id'] . "\n"; $roomId = $result['response']['room']['id']; } else { echo "❌ Échec: temp_id non retourné dans la réponse\n"; echo " Response: " . json_encode($result['response']) . "\n"; $roomId = null; } echo "\n"; // Test 2: Envoi d'un message avec temp_id if ($roomId) { echo "Test 2: Envoi d'un message avec temp_id\n"; $messageData = [ 'content' => 'Message créé hors ligne', 'temp_id' => 'temp_msg_' . uniqid() ]; echo "Requête POST /chat/rooms/{$roomId}/messages avec temp_id: {$messageData['temp_id']}\n"; $result = makeRequest('POST', "/chat/rooms/{$roomId}/messages", $messageData, $sessionId); if ($result['code'] === 201 && isset($result['response']['message']['temp_id'])) { echo "✅ Succès: Message créé avec temp_id retourné\n"; echo " - ID réel: " . $result['response']['message']['id'] . "\n"; echo " - temp_id: " . $result['response']['message']['temp_id'] . "\n"; $messageId = $result['response']['message']['id']; } else { echo "❌ Échec: temp_id non retourné dans la réponse\n"; echo " Response: " . json_encode($result['response']) . "\n"; $messageId = null; } echo "\n"; } // Test 3: Mise à jour d'une room avec temp_id if ($roomId) { echo "Test 3: Mise à jour d'une room avec temp_id\n"; $updateData = [ 'title' => 'Room mise à jour', 'temp_id' => 'temp_update_room_' . uniqid() ]; echo "Requête PUT /chat/rooms/{$roomId} avec temp_id: {$updateData['temp_id']}\n"; $result = makeRequest('PUT', "/chat/rooms/{$roomId}", $updateData, $sessionId); if ($result['code'] === 200 && isset($result['response']['room']['temp_id'])) { echo "✅ Succès: Room mise à jour avec temp_id retourné\n"; echo " - temp_id: " . $result['response']['room']['temp_id'] . "\n"; } else { echo "❌ Échec: temp_id non retourné dans la réponse\n"; echo " Response: " . json_encode($result['response']) . "\n"; } echo "\n"; } // Test 4: Mise à jour d'un message avec temp_id if ($messageId) { echo "Test 4: Mise à jour d'un message avec temp_id\n"; $updateData = [ 'content' => 'Message modifié', 'temp_id' => 'temp_update_msg_' . uniqid() ]; echo "Requête PUT /chat/messages/{$messageId} avec temp_id: {$updateData['temp_id']}\n"; $result = makeRequest('PUT', "/chat/messages/{$messageId}", $updateData, $sessionId); if ($result['code'] === 200 && isset($result['response']['message']['temp_id'])) { echo "✅ Succès: Message mis à jour avec temp_id retourné\n"; echo " - temp_id: " . $result['response']['message']['temp_id'] . "\n"; } else { echo "❌ Échec: temp_id non retourné dans la réponse\n"; echo " Response: " . json_encode($result['response']) . "\n"; } echo "\n"; } // Test 5: Création sans temp_id (doit continuer à fonctionner) echo "Test 5: Création d'une room SANS temp_id (compatibilité)\n"; $roomData = [ 'type' => 'private', 'participants' => [2], 'title' => 'Test Room Normal' ]; echo "Requête POST /chat/rooms sans temp_id\n"; $result = makeRequest('POST', '/chat/rooms', $roomData, $sessionId); if ($result['code'] === 201 && !isset($result['response']['room']['temp_id'])) { echo "✅ Succès: Room créée normalement sans temp_id\n"; echo " - ID: " . $result['response']['room']['id'] . "\n"; } else if ($result['code'] === 201) { echo "⚠️ Attention: Room créée mais temp_id présent alors qu'il ne devrait pas\n"; } else { echo "❌ Échec: Erreur lors de la création\n"; echo " Response: " . json_encode($result['response']) . "\n"; } echo "\n=== Fin des tests ===\n"; echo "\nNote: Assurez-vous d'avoir un session_id valide et que l'API est accessible.\n"; echo "Pour obtenir un session_id valide, connectez-vous d'abord via POST /api/login\n";