diff --git a/SVSTaskGate.ps1 b/SVSTaskGate.ps1 index 58a9916..d40da48 100644 --- a/SVSTaskGate.ps1 +++ b/SVSTaskGate.ps1 @@ -831,30 +831,28 @@ try { } "/getn8npw" { - if ($request.HttpMethod -eq "POST") { - $bodyStream = New-Object IO.StreamReader $request.InputStream - $body = $bodyStream.ReadToEnd() - $data = ConvertFrom-Json $body - $password = $data.password + if ($request.HttpMethod -eq "POST") { + # Parse the received JSON + $bodyStream = New-Object IO.StreamReader $request.InputStream + $body = $bodyStream.ReadToEnd() + $data = ConvertFrom-Json $body + $password = $data.password + Get-N8nWebhookData -AuthHeaderValue $password + # Fetch the list of Datto RMM client sites + $sites = Install-DattoRMM -ApiUrl $ApiUrl -ApiKey $ApiKey -ApiSecretKey $ApiSecretKey -FetchSitesOnly - Get-N8nWebhookData -AuthHeaderValue $password - $sites = Install-DattoRMM -ApiUrl $ApiUrl -ApiKey $ApiKey -ApiSecretKey $ApiSecretKey -FetchSitesOnly - if (-not $sites) { - Write-Host "No sites returned. Please check the API." -ForegroundColor Red - $response.StatusCode = 500 - $buffer = [System.Text.Encoding]::UTF8.GetBytes("No sites found") - $response.OutputStream.Write($buffer, 0, $buffer.Length) - $response.OutputStream.Close() - continue - } - $responseData = $sites | ConvertTo-Json - $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseData) - $response.ContentType = "application/json" - $response.ContentLength64 = $buffer.Length - $response.OutputStream.Write($buffer, 0, $buffer.Length) - $response.OutputStream.Close() + # Check if sites are fetched + if (-not $sites) { + Write-Host "No sites were returned from the API. Please check the API connection." -ForegroundColor Red + return } + + # Convert the site list into JavaScript for populating the dropdown + $siteOptions = ($sites | ForEach-Object { + "document.getElementById('dattoRmmDropdown').innerHTML += '';" + }) -join "`n" } + }