public/Get-NotionPage.ps1
function Get-NotionPage{ [CmdletBinding()] param ( [Parameter(ValueFromPipelineByPropertyName)] [Parameter(ParameterSetName = 'ByDatabaseId')] [Alias("id")] [string] $DatabaseId, [Parameter()] [Parameter(ParameterSetName = 'ByPageId')] [string] $PageId, [Parameter()] [Parameter(ParameterSetName = 'ByDatabaseId')] [switch] $All ) if (![string]::IsNullOrEmpty($DatabaseId)) { $Body = @{} $Response = Invoke-NotionRequest -UriEndpoint "/databases/$DatabaseId/query" -Method POST -Body ( $Body | ConvertTo-Json) $ResponseSummary = $Response If ($All -and $Response.has_more -eq $true) { do { $Body = @{ start_cursor = "$($Response.next_cursor)" } $Response = Invoke-NotionRequest -UriEndpoint "/databases/$DatabaseId/query" -Method POST -Body ( $Body | ConvertTo-Json) $ResponseSummary.results += $Response.results $ResponseSummary.has_more = $Response.has_more $ResponseSummary.next_cursor = $Response.next_cursor }while ($Response.has_more -eq $true) } return $ResponseSummary.results } elseif(![string]::IsNullOrEmpty($PageId)) { $Response = Invoke-NotionRequest -UriEndpoint "/pages/$PageId" -Method GET return $Response } else { throw "No Databaseid or Pageid provided!" } } |