#!/bin/bash # Script pour tester le webhook N8N en utilisant les variables d'environnement # Usage: source .env.local && ./test-n8n-webhook-env.sh [MISSION_ID] [ROCKETCHAT_CHANNEL_ID] # Charger les variables d'environnement depuis .env.local si elles existent if [ -f .env.local ]; then export $(grep -v '^#' .env.local | xargs) fi # Configuration depuis les variables d'environnement API_URL="${NEXT_PUBLIC_API_URL:-https://hub.slm-lab.net/api}" API_KEY="${N8N_API_KEY}" # Vérifier que l'API key est définie if [ -z "$API_KEY" ]; then echo "❌ Erreur: N8N_API_KEY n'est pas définie dans les variables d'environnement" echo " Assurez-vous d'avoir chargé .env.local ou défini N8N_API_KEY" exit 1 fi # Paramètres (utiliser ceux fournis ou des valeurs par défaut pour test) MISSION_ID="${1:-3103ec1a-acde-4025-9ead-4e1a0ddc047c}" ROCKETCHAT_CHANNEL_ID="${2:-ByehQjC44FwMeiLbX}" echo "🧪 Test du webhook N8N mission-created" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "API URL: $API_URL" echo "Mission ID: $MISSION_ID" echo "RocketChat Channel ID: $ROCKETCHAT_CHANNEL_ID" echo "API Key: ${API_KEY:0:10}... (masquée)" echo "" # Test principal avec tous les champs echo "📤 Envoi de la requête avec RocketChat Channel ID..." echo "" RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "${API_URL}/missions/mission-created" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d "{ \"missionId\": \"${MISSION_ID}\", \"name\": \"SEFFIR\", \"creatorId\": \"203cbc91-61ab-47a2-95d2-b5e1159327d7\", \"gitRepoUrl\": \"\", \"leantimeProjectId\": \"517\", \"documentationCollectionId\": \"08919836-435a-466f-a38a-014991759da2\", \"rocketchatChannelId\": \"${ROCKETCHAT_CHANNEL_ID}\", \"donneurDOrdre\": \"group\", \"projection\": \"long\", \"missionType\": \"remote\", \"niveau\": \"s\" }") HTTP_CODE=$(echo "$RESPONSE" | tail -n1) BODY=$(echo "$RESPONSE" | sed '$d') echo "📥 Réponse HTTP: $HTTP_CODE" echo "📄 Corps de la réponse:" echo "$BODY" | jq '.' 2>/dev/null || echo "$BODY" echo "" if [ "$HTTP_CODE" = "200" ]; then echo "✅ Succès! La mission a été mise à jour." else echo "❌ Erreur HTTP $HTTP_CODE" fi echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "🔍 Tests supplémentaires avec différents formats de rocketchatChannelId:" echo "" # Test 1: ID valide echo "=== Test 1: ID RocketChat valide ===" curl -s -X POST "${API_URL}/missions/mission-created" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d "{ \"missionId\": \"${MISSION_ID}\", \"rocketchatChannelId\": \"ByehQjC44FwMeiLbX\" }" | jq '.' || echo "Erreur de parsing JSON" echo "" # Test 2: null echo "=== Test 2: ID RocketChat null ===" curl -s -X POST "${API_URL}/missions/mission-created" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d "{ \"missionId\": \"${MISSION_ID}\", \"rocketchatChannelId\": null }" | jq '.' || echo "Erreur de parsing JSON" echo "" # Test 3: chaîne vide echo "=== Test 3: ID RocketChat chaîne vide ===" curl -s -X POST "${API_URL}/missions/mission-created" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d "{ \"missionId\": \"${MISSION_ID}\", \"rocketchatChannelId\": \"\" }" | jq '.' || echo "Erreur de parsing JSON" echo "" # Test 4: non fourni echo "=== Test 4: ID RocketChat non fourni ===" curl -s -X POST "${API_URL}/missions/mission-created" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d "{ \"missionId\": \"${MISSION_ID}\" }" | jq '.' || echo "Erreur de parsing JSON" echo ""