NeahStable/test-n8n-webhook-env.sh
2026-01-14 11:15:51 +01:00

117 lines
4.0 KiB
Bash

#!/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 ""