Public/Get-ConfluencePage.ps1
|
function Get-ConfluencePage { <# .SYNOPSIS Ruft eine oder mehrere Confluence-Seiten ab. .PARAMETER PageId ID einer einzelnen Seite. .PARAMETER SpaceId Filtert Seiten nach Space-ID, falls keine PageId angegeben ist. .PARAMETER Title Filtert nach Titel (exakte Übereinstimmung), benötigt SpaceId. .PARAMETER IncludeBody Gibt den Seiteninhalt (storage-Format) mit zurück. .EXAMPLE Get-ConfluencePage -PageId 12345 -IncludeBody .EXAMPLE Get-ConfluencePage -SpaceId 98765 #> [CmdletBinding(DefaultParameterSetName = "ById")] param ( [Parameter(Mandatory = $true, ParameterSetName = "ById")] [string] $PageId, [Parameter(Mandatory = $false, ParameterSetName = "ByQuery")] [string] $SpaceId, [Parameter(Mandatory = $false, ParameterSetName = "ByQuery")] [string] $Title, [Parameter(Mandatory = $false)] [switch] $IncludeBody ) begin { $ErrorActionPreference = "Stop" } process { if ($PSCmdlet.ParameterSetName -eq "ById") { $Path = "/wiki/api/v2/pages/$PageId" if ($IncludeBody) { $Path += "?body-format=storage" } $response = Invoke-ConfluenceApi -Method Get -Path $Path } else { $QueryParts = @() if ($SpaceId) { $QueryParts += "space-id=$SpaceId" } if ($Title) { $QueryParts += "title=$([uri]::EscapeDataString($Title))" } if ($IncludeBody) { $QueryParts += "body-format=storage" } $Query = if ($QueryParts.Count -gt 0) { "?" + ($QueryParts -join "&") } else { "" } $response = (Invoke-ConfluenceApi -Method Get -Path "/wiki/api/v2/pages$Query").results } } end { return $response } } |