Private/Invoke-GreenhouseJobBoardRequest.ps1
|
function Invoke-GreenhouseJobBoardRequest { [CmdletBinding()] param( [Parameter(Mandatory)] [string]$BoardToken, [string]$APIPath, [hashtable]$Query, [ValidateSet('Get')] [string]$Method = 'Get' ) If ($APIPath){ $baseUri = "https://boards-api.greenhouse.io/v1/boards/$BoardToken/$APIPath" } Else { $baseUri = "https://boards-api.greenhouse.io/v1/boards/$BoardToken" } $builder = [System.UriBuilder]::new($baseUri) if ($Query) { $pairs = foreach ($entry in $Query.GetEnumerator()) { $key = [System.Uri]::EscapeDataString([string]$entry.Key) $value = [System.Uri]::EscapeDataString([string]$entry.Value) "$key=$value" } $builder.Query = ($pairs -join '&') } Invoke-RestMethod -Uri $builder.Uri -Method $Method } |