193 lines
6.9 KiB
Bash
193 lines
6.9 KiB
Bash
#!/bin/bash
|
||
|
||
# Script de diagnostic complet pour l'envoi d'email aux transporteurs
|
||
# Ce script fait TOUT automatiquement
|
||
|
||
set -e # Arrêter en cas d'erreur
|
||
|
||
# Couleurs
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m' # No Color
|
||
|
||
echo ""
|
||
echo "╔════════════════════════════════════════════════════════════╗"
|
||
echo "║ 🔍 DIAGNOSTIC COMPLET - Email Transporteur ║"
|
||
echo "╚════════════════════════════════════════════════════════════╝"
|
||
echo ""
|
||
|
||
# Fonction pour afficher les étapes
|
||
step_header() {
|
||
echo ""
|
||
echo -e "${BLUE}╔════════════════════════════════════════════════════════════╗${NC}"
|
||
echo -e "${BLUE}║ $1${NC}"
|
||
echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}"
|
||
echo ""
|
||
}
|
||
|
||
# Fonction pour les succès
|
||
success() {
|
||
echo -e "${GREEN}✅ $1${NC}"
|
||
}
|
||
|
||
# Fonction pour les erreurs
|
||
error() {
|
||
echo -e "${RED}❌ $1${NC}"
|
||
}
|
||
|
||
# Fonction pour les warnings
|
||
warning() {
|
||
echo -e "${YELLOW}⚠️ $1${NC}"
|
||
}
|
||
|
||
# Fonction pour les infos
|
||
info() {
|
||
echo -e "${BLUE}ℹ️ $1${NC}"
|
||
}
|
||
|
||
# Aller dans le répertoire backend
|
||
cd "$(dirname "$0")"
|
||
|
||
# ============================================================
|
||
# ÉTAPE 1: Arrêter le backend
|
||
# ============================================================
|
||
step_header "ÉTAPE 1/5: Arrêt du backend actuel"
|
||
|
||
BACKEND_PIDS=$(lsof -ti:4000 2>/dev/null || true)
|
||
if [ -n "$BACKEND_PIDS" ]; then
|
||
info "Processus backend trouvés: $BACKEND_PIDS"
|
||
kill -9 $BACKEND_PIDS 2>/dev/null || true
|
||
sleep 2
|
||
success "Backend arrêté"
|
||
else
|
||
info "Aucun backend en cours d'exécution"
|
||
fi
|
||
|
||
# ============================================================
|
||
# ÉTAPE 2: Vérifier les modifications
|
||
# ============================================================
|
||
step_header "ÉTAPE 2/5: Vérification des modifications"
|
||
|
||
if grep -q "Using direct IP" src/infrastructure/email/email.adapter.ts; then
|
||
success "Modifications DNS présentes dans email.adapter.ts"
|
||
else
|
||
error "Modifications DNS ABSENTES dans email.adapter.ts"
|
||
error "Le fix n'a pas été appliqué correctement!"
|
||
exit 1
|
||
fi
|
||
|
||
# ============================================================
|
||
# ÉTAPE 3: Test de connexion SMTP (sans backend)
|
||
# ============================================================
|
||
step_header "ÉTAPE 3/5: Test de connexion SMTP directe"
|
||
|
||
info "Exécution de debug-email-flow.js..."
|
||
echo ""
|
||
|
||
if node debug-email-flow.js > /tmp/email-test.log 2>&1; then
|
||
success "Test SMTP réussi!"
|
||
echo ""
|
||
echo "Résultats du test:"
|
||
echo "─────────────────"
|
||
tail -15 /tmp/email-test.log
|
||
else
|
||
error "Test SMTP échoué!"
|
||
echo ""
|
||
echo "Logs d'erreur:"
|
||
echo "──────────────"
|
||
cat /tmp/email-test.log
|
||
echo ""
|
||
error "ARRÊT: La connexion SMTP ne fonctionne pas"
|
||
error "Vérifiez vos credentials SMTP dans .env"
|
||
exit 1
|
||
fi
|
||
|
||
# ============================================================
|
||
# ÉTAPE 4: Redémarrer le backend
|
||
# ============================================================
|
||
step_header "ÉTAPE 4/5: Redémarrage du backend"
|
||
|
||
info "Démarrage du backend en arrière-plan..."
|
||
|
||
# Démarrer le backend
|
||
npm run dev > /tmp/backend.log 2>&1 &
|
||
BACKEND_PID=$!
|
||
|
||
info "Backend démarré (PID: $BACKEND_PID)"
|
||
info "Attente de l'initialisation (15 secondes)..."
|
||
|
||
# Attendre que le backend démarre
|
||
sleep 15
|
||
|
||
# Vérifier que le backend tourne
|
||
if kill -0 $BACKEND_PID 2>/dev/null; then
|
||
success "Backend en cours d'exécution"
|
||
|
||
# Afficher les logs de démarrage
|
||
echo ""
|
||
echo "Logs de démarrage du backend:"
|
||
echo "─────────────────────────────"
|
||
tail -20 /tmp/backend.log
|
||
echo ""
|
||
|
||
# Vérifier le log DNS fix
|
||
if grep -q "Using direct IP" /tmp/backend.log; then
|
||
success "✨ DNS FIX DÉTECTÉ: Le backend utilise bien l'IP directe!"
|
||
else
|
||
warning "DNS fix non détecté dans les logs"
|
||
warning "Cela peut être normal si le message est tronqué"
|
||
fi
|
||
|
||
else
|
||
error "Le backend n'a pas démarré correctement"
|
||
echo ""
|
||
echo "Logs d'erreur:"
|
||
echo "──────────────"
|
||
cat /tmp/backend.log
|
||
exit 1
|
||
fi
|
||
|
||
# ============================================================
|
||
# ÉTAPE 5: Test de création de booking (optionnel)
|
||
# ============================================================
|
||
step_header "ÉTAPE 5/5: Instructions pour tester"
|
||
|
||
echo ""
|
||
echo "Le backend est maintenant en cours d'exécution avec les corrections."
|
||
echo ""
|
||
echo "Pour tester l'envoi d'email:"
|
||
echo "──────────────────────────────────────────────────────────────"
|
||
echo ""
|
||
echo "1. ${GREEN}Via le frontend${NC}:"
|
||
echo " - Ouvrez http://localhost:3000"
|
||
echo " - Créez un CSV booking"
|
||
echo " - Vérifiez les logs backend pour:"
|
||
echo " ${GREEN}✅ Email sent to carrier: <email>${NC}"
|
||
echo ""
|
||
echo "2. ${GREEN}Via l'API directement${NC}:"
|
||
echo " - Utilisez Postman ou curl"
|
||
echo " - POST http://localhost:4000/api/v1/csv-bookings"
|
||
echo " - Avec un fichier et les données du booking"
|
||
echo ""
|
||
echo "3. ${GREEN}Vérifier Mailtrap${NC}:"
|
||
echo " - https://mailtrap.io/inboxes"
|
||
echo " - Cherchez: 'Nouvelle demande de réservation'"
|
||
echo ""
|
||
echo "──────────────────────────────────────────────────────────────"
|
||
echo ""
|
||
info "Pour voir les logs backend en temps réel:"
|
||
echo " ${YELLOW}tail -f /tmp/backend.log${NC}"
|
||
echo ""
|
||
info "Pour arrêter le backend:"
|
||
echo " ${YELLOW}kill $BACKEND_PID${NC}"
|
||
echo ""
|
||
|
||
success "Diagnostic terminé!"
|
||
echo ""
|
||
echo "╔════════════════════════════════════════════════════════════╗"
|
||
echo "║ ✅ BACKEND PRÊT - Créez un booking pour tester ║"
|
||
echo "╚════════════════════════════════════════════════════════════╝"
|
||
echo ""
|