Badgerati / Pode

Pode is a Cross-Platform PowerShell web framework for creating REST APIs, Web Sites, and TCP/SMTP servers
https://badgerati.github.io/Pode
MIT License
830 stars 92 forks source link

PodeRouteGroup with a file path #1329

Open eltyBelgium opened 3 months ago

eltyBelgium commented 3 months ago

Question

Is the following possible on any way?

Server.ps1

 Add-PodeRouteGroup -Path '/network' -FilePath './Routes/File.ps1'

File.ps1

{
    Add-PodeRoute -Method Get -Path '/domains' -ScriptBlock {
        $result = vsz-getdomains | ConvertTo-Json

        Write-PodeJsonResponse -Value $result
    }

    Add-PodeRoute -Method Get -Path '/zones' -ScriptBlock {
        $result = vsz-getzones | ConvertTo-Json

        Write-PodeJsonResponse -Value $result
    }

    Add-PodeRoute -Method Get -Path '/zones/:zoneId/wlans' -ScriptBlock {
        $result = vsz-getwlans $WebEvent.Parameters['zoneId']| ConvertTo-Json

        $specificWlan = $result | Where-Object { $_.ZoneID -eq $WebEvent.Query['wlandId'] }

        if($null -eq $specificWlan) {
            Write-PodeJsonResponse -Value $result

        }else{
            Write-PodeJsonResponse -Value $specificWlan
        }
    }

    Add-PodeRoute -Method Get -Path '/zones/:zoneId/dpsks' -ScriptBlock {
        $result = vsz-getdpsks $WebEvent.Parameters['zoneId']| ConvertTo-Json

        $specificWlan = $result | Where-Object { $_.ZoneID -eq $WebEvent.Query['dpsk'] }

        if($null -eq $specificWlan) {
            Write-PodeJsonResponse -Value $result

        }else{
            Write-PodeJsonResponse -Value $specificWlan
        }
    }

    Add-PodeRoute -Method Post -Path '/zones/:zoneId/dpsks' -ScriptBlock {

        try{
            $result = vsz-createdpsks -zoneID $WebEvent.Parameters['zoneId'] -wlanID $WebEvent.Data.wlandID -username $WebEvent.Data.username -userrole $WebEvent.Data.userrole
            Write-PodeTextResponse -Value $result -ContentType "application/json"
        }
        catch{
            Write-PodeErrorLog -Exception $_.Exception
            Write-PodeJsonResponse -Value @{"message" = $_.Exception.Message} -StatusCode 500
        }

    }
}