#!/bin/bash # ============================================================================= # MiChangarrito - Script de Validacion de Integraciones # ============================================================================= # Version: 1.1.0 # Fecha: 2026-01-07 # ============================================================================= # Colores RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' CYAN='\033[0;36m' NC='\033[0m' # Contadores PASSED=0 FAILED=0 WARNINGS=0 pass() { echo -e " [${GREEN}OK${NC}] $1"; ((PASSED++)); } fail() { echo -e " [${RED}FAIL${NC}] $1"; ((FAILED++)); } warn() { echo -e " [${YELLOW}WARN${NC}] $1"; ((WARNINGS++)); } # Banner echo "" echo -e "${BLUE}══════════════════════════════════════════════════════════════════${NC}" echo -e "${BLUE} MICHANGARRITO - VALIDACION DE INTEGRACIONES ${NC}" echo -e "${BLUE}══════════════════════════════════════════════════════════════════${NC}" echo "" # ============================================================================= # DATABASE # ============================================================================= echo -e "${CYAN}=== DATABASE ===${NC}" if pg_isready -h localhost -p 5432 > /dev/null 2>&1; then pass "PostgreSQL disponible en localhost:5432" TABLE_COUNT=$(PGPASSWORD="MCh_dev_2025_secure" psql -h localhost -p 5432 -U michangarrito_dev -d michangarrito_dev -tAc "SELECT count(*) FROM information_schema.tables WHERE table_schema NOT IN ('pg_catalog', 'information_schema');" 2>/dev/null) if [ -n "$TABLE_COUNT" ] && [ "$TABLE_COUNT" -gt 0 ]; then pass "Base de datos tiene $TABLE_COUNT tablas" else warn "No se pudo contar tablas" fi else fail "PostgreSQL no disponible" fi echo "" # ============================================================================= # REDIS # ============================================================================= echo -e "${CYAN}=== REDIS ===${NC}" if redis-cli -h localhost -p 6379 ping > /dev/null 2>&1; then pass "Redis disponible en localhost:6379" elif redis-cli -h localhost -p 6389 ping > /dev/null 2>&1; then pass "Redis disponible en localhost:6389" else warn "Redis no disponible (opcional para desarrollo)" fi echo "" # ============================================================================= # STRIPE # ============================================================================= echo -e "${CYAN}=== STRIPE ===${NC}" STRIPE_KEY=$(grep "^STRIPE_SECRET_KEY=" /home/isem/workspace-v1/projects/michangarrito/.env 2>/dev/null | cut -d= -f2) if [ -n "$STRIPE_KEY" ] && [ "$STRIPE_KEY" != "sk_test_" ]; then pass "STRIPE_SECRET_KEY configurada" HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -u "$STRIPE_KEY:" https://api.stripe.com/v1/balance 2>/dev/null) if [ "$HTTP_CODE" = "200" ]; then pass "Conexion a Stripe API exitosa" elif [ "$HTTP_CODE" = "401" ]; then fail "API key de Stripe invalida" else warn "No se pudo verificar Stripe (HTTP $HTTP_CODE)" fi else fail "STRIPE_SECRET_KEY no configurada o vacia" fi echo "" # ============================================================================= # WHATSAPP # ============================================================================= echo -e "${CYAN}=== WHATSAPP ===${NC}" WA_TOKEN=$(grep "^WHATSAPP_ACCESS_TOKEN=" /home/isem/workspace-v1/projects/michangarrito/.env 2>/dev/null | cut -d= -f2) WA_PHONE=$(grep "^WHATSAPP_PHONE_NUMBER_ID=" /home/isem/workspace-v1/projects/michangarrito/.env 2>/dev/null | cut -d= -f2) WA_VERIFY=$(grep "^WHATSAPP_VERIFY_TOKEN=" /home/isem/workspace-v1/projects/michangarrito/.env 2>/dev/null | cut -d= -f2) if [ -n "$WA_TOKEN" ]; then pass "WHATSAPP_ACCESS_TOKEN configurada" else fail "WHATSAPP_ACCESS_TOKEN no configurada" fi if [ -n "$WA_PHONE" ]; then pass "WHATSAPP_PHONE_NUMBER_ID configurada" else fail "WHATSAPP_PHONE_NUMBER_ID no configurada" fi if [ -n "$WA_VERIFY" ]; then pass "WHATSAPP_VERIFY_TOKEN configurada" else fail "WHATSAPP_VERIFY_TOKEN no configurada" fi echo "" # ============================================================================= # LLM # ============================================================================= echo -e "${CYAN}=== LLM ===${NC}" LLM_KEY=$(grep "^LLM_API_KEY=" /home/isem/workspace-v1/projects/michangarrito/.env 2>/dev/null | cut -d= -f2) OPENAI_KEY=$(grep "^OPENAI_API_KEY=" /home/isem/workspace-v1/projects/michangarrito/.env 2>/dev/null | cut -d= -f2) LLM_PROVIDER=$(grep "^LLM_PROVIDER=" /home/isem/workspace-v1/projects/michangarrito/.env 2>/dev/null | cut -d= -f2) echo " Proveedor: ${LLM_PROVIDER:-openrouter}" if [ -n "$LLM_KEY" ] || [ -n "$OPENAI_KEY" ]; then pass "API Key de LLM configurada" else fail "API Key de LLM no configurada (LLM_API_KEY o OPENAI_API_KEY)" fi echo "" # ============================================================================= # RESUMEN # ============================================================================= echo -e "${BLUE}══════════════════════════════════════════════════════════════════${NC}" echo -e "${CYAN}RESUMEN${NC}" echo -e "${BLUE}══════════════════════════════════════════════════════════════════${NC}" echo "" echo -e " ${GREEN}Exitosos:${NC} $PASSED" echo -e " ${RED}Fallidos:${NC} $FAILED" echo -e " ${YELLOW}Advertencias:${NC} $WARNINGS" echo "" if [ $FAILED -eq 0 ]; then echo -e "${GREEN}Todas las integraciones configuradas correctamente${NC}" exit 0 else echo -e "${YELLOW}Algunas integraciones requieren configuracion${NC}" echo "" echo "Revisa: orchestration/trazas/TAREAS-PENDIENTES-INTEGRACIONES.md" exit 1 fi