Public/Get-DifyWorkspace.ps1
|
function Get-DifyWorkspace { [CmdletBinding()] param( [String[]] $Id = @(), [String[]] $Name = @(), [String[]] $Search = @() ) $Endpoint = Join-Url -Segments @($env:PSDIFY_URL, "/console/api/workspaces") $Method = "GET" try { $Response = Invoke-DifyRestMethod -Uri $Endpoint -Method $Method -SessionOrToken $script:PSDIFY_CONSOLE_AUTH } catch { throw "Failed to obtain workspaces: $_" } if (-not $Response.workspaces) { return @() } $Workspaces = @() foreach ($Workspace in $Response.workspaces) { $WorkspaceObject = [PSCustomObject]@{ Id = $Workspace.id Name = $Workspace.name Plan = $Workspace.plan Status = $Workspace.status CreatedAt = Convert-UnixTimeToLocalDateTime($Workspace.created_at) Current = $Workspace.current } $Workspaces += $WorkspaceObject } if ($Id) { $Workspaces = $Workspaces | Where-Object { $Id -eq $_.Id } } if ($Name) { $Workspaces = $Workspaces | Where-Object { $Name -eq $_.Name } } if ($Search) { $Workspaces = $Workspaces | Where-Object { $_.Id -like "*$($Search)*" -or $_.Name -like "*$($Search)*" } } return $Workspaces } |