# Test Action Mappings API $ErrorActionPreference = "Stop" Write-Host "========================================" -ForegroundColor Cyan Write-Host "Testing Action Mappings API" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "" # 1. Login Write-Host "[1/3] Logging in..." -ForegroundColor Yellow $loginBody = @{ username = "admin" password = "admin123" } | ConvertTo-Json try { $loginResponse = Invoke-RestMethod -Uri "http://localhost:8000/api/v1/auth/login" ` -Method POST ` -Body $loginBody ` -ContentType "application/json" $token = $loginResponse.access_token Write-Host " [OK] Logged in successfully" -ForegroundColor Green Write-Host " Token: $($token.Substring(0, 20))..." -ForegroundColor Gray } catch { Write-Host " [ERROR] Login failed: $($_.Exception.Message)" -ForegroundColor Red exit 1 } Write-Host "" # 2. Get action mappings Write-Host "[2/3] Fetching action mappings..." -ForegroundColor Yellow $headers = @{ "Authorization" = "Bearer $token" "accept" = "application/json" } try { $mappings = Invoke-RestMethod -Uri "http://localhost:8000/api/v1/action-mappings" ` -Method GET ` -Headers $headers Write-Host " [OK] Retrieved action mappings" -ForegroundColor Green Write-Host " Count: $($mappings.Count)" -ForegroundColor Gray Write-Host "" if ($mappings.Count -eq 0) { Write-Host " No action mappings found in database" -ForegroundColor Yellow } else { Write-Host " Mappings:" -ForegroundColor Cyan foreach ($mapping in $mappings) { Write-Host " - ID: $($mapping.id)" -ForegroundColor White Write-Host " Name: $($mapping.name)" -ForegroundColor White Write-Host " Input: $($mapping.input_action)" -ForegroundColor Gray Write-Host " Outputs: $($mapping.output_actions -join ', ')" -ForegroundColor Gray Write-Host " Enabled: $($mapping.enabled)" -ForegroundColor Gray Write-Host "" } } } catch { Write-Host " [ERROR] Failed to fetch mappings: $($_.Exception.Message)" -ForegroundColor Red Write-Host " Response: $($_.ErrorDetails.Message)" -ForegroundColor Red exit 1 } # 3. Check database directly Write-Host "[3/3] Checking database..." -ForegroundColor Yellow try { # Connect to PostgreSQL and count records $env:PGPASSWORD = "postgres" $result = & "C:\Program Files\PostgreSQL\16\bin\psql.exe" -h localhost -U postgres -d geutebruck_api -t -c "SELECT COUNT(*) FROM action_mappings;" $count = $result.Trim() Write-Host " [OK] Database has $count record(s) in action_mappings table" -ForegroundColor Green } catch { Write-Host " [WARN] Could not check database directly" -ForegroundColor Yellow } Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "Test Complete" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan