117 lines
4.0 KiB
Bash
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 ""
|