#!/bin/bash # Script pour tester l'interface de signature Odentas Sign # Génère une demande et affiche les URLs pour tester dans le navigateur set -e BASE_URL="http://localhost:3000" API_URL="$BASE_URL/api/odentas-sign" echo "═══════════════════════════════════════════════════════" echo " 🎨 Test Interface Signature Odentas Sign" echo "═══════════════════════════════════════════════════════" echo "" # Check if test-odentas-sign-info.json exists if [ ! -f "test-odentas-sign-info.json" ]; then echo "❌ Fichier test-odentas-sign-info.json introuvable" echo "" echo "Veuillez d'abord exécuter:" echo " node test-odentas-sign.js" echo "" exit 1 fi # Extract request ID and signer IDs REQUEST_ID=$(jq -r '.requestId' test-odentas-sign-info.json) EMPLOYEUR_ID=$(jq -r '.signers[] | select(.role == "Employeur") | .id' test-odentas-sign-info.json) SALARIE_ID=$(jq -r '.signers[] | select(.role == "Salarié") | .id' test-odentas-sign-info.json) EMPLOYEUR_EMAIL=$(jq -r '.signers[] | select(.role == "Employeur") | .email' test-odentas-sign-info.json) SALARIE_EMAIL=$(jq -r '.signers[] | select(.role == "Salarié") | .email' test-odentas-sign-info.json) echo "📋 Informations de la demande:" echo " Request ID: $REQUEST_ID" echo " Employeur ID: $EMPLOYEUR_ID ($EMPLOYEUR_EMAIL)" echo " Salarié ID: $SALARIE_ID ($SALARIE_EMAIL)" echo "" # Generate URLs EMPLOYEUR_URL="$BASE_URL/signer/$REQUEST_ID/$EMPLOYEUR_ID" SALARIE_URL="$BASE_URL/signer/$REQUEST_ID/$SALARIE_ID" echo "═══════════════════════════════════════════════════════" echo " 🔗 URLs de Signature" echo "═══════════════════════════════════════════════════════" echo "" echo "👔 Employeur:" echo " $EMPLOYEUR_URL" echo "" echo "👤 Salarié:" echo " $SALARIE_URL" echo "" # Interactive menu echo "═══════════════════════════════════════════════════════" echo " 📱 Actions Disponibles" echo "═══════════════════════════════════════════════════════" echo "" echo "1. Ouvrir l'interface Employeur dans le navigateur" echo "2. Ouvrir l'interface Salarié dans le navigateur" echo "3. Afficher l'OTP de l'Employeur (mode test)" echo "4. Afficher l'OTP du Salarié (mode test)" echo "5. Vérifier le statut de la demande" echo "6. Quitter" echo "" while true; do read -p "Choisissez une action (1-6): " choice case $choice in 1) echo "" echo "🌐 Ouverture de l'interface Employeur..." open "$EMPLOYEUR_URL" 2>/dev/null || xdg-open "$EMPLOYEUR_URL" 2>/dev/null || echo "URL: $EMPLOYEUR_URL" echo "" ;; 2) echo "" echo "🌐 Ouverture de l'interface Salarié..." open "$SALARIE_URL" 2>/dev/null || xdg-open "$SALARIE_URL" 2>/dev/null || echo "URL: $SALARIE_URL" echo "" ;; 3) echo "" echo "📧 Envoi de l'OTP à l'Employeur..." RESPONSE=$(curl -s -X POST "$API_URL/signers/$EMPLOYEUR_ID/send-otp" \ -H "Content-Type: application/json") echo "$RESPONSE" | jq -r '.message // .error' # In test mode, OTP will be in server logs echo "" echo "💡 En mode test, l'OTP s'affiche dans les logs du serveur Next.js" echo " Cherchez le message avec des étoiles ⭐" echo "" ;; 4) echo "" echo "📧 Envoi de l'OTP au Salarié..." RESPONSE=$(curl -s -X POST "$API_URL/signers/$SALARIE_ID/send-otp" \ -H "Content-Type: application/json") echo "$RESPONSE" | jq -r '.message // .error' echo "" echo "💡 En mode test, l'OTP s'affiche dans les logs du serveur Next.js" echo " Cherchez le message avec des étoiles ⭐" echo "" ;; 5) echo "" echo "📊 Statut de la demande..." echo "Employeur:" EMPLOYEUR_STATUS=$(curl -s "$API_URL/signers/$EMPLOYEUR_ID/status") echo "$EMPLOYEUR_STATUS" | jq '.signer | {name, role, has_signed, signed_at}' echo "" echo "Salarié:" SALARIE_STATUS=$(curl -s "$API_URL/signers/$SALARIE_ID/status") echo "$SALARIE_STATUS" | jq '.signer | {name, role, has_signed, signed_at}' echo "" echo "Progression:" echo "$EMPLOYEUR_STATUS" | jq '.request.progress' echo "" ;; 6) echo "" echo "👋 Au revoir!" exit 0 ;; *) echo "" echo "❌ Choix invalide. Veuillez entrer un nombre entre 1 et 6." echo "" ;; esac done