private/Invoke-RestMethod2.ps1
function Invoke-RestMethod2 { [CmdletBinding()] param ( [Parameter(Mandatory)] [string]$Uri, [ValidateSet("GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "MERGE", "TRACE")] [string]$Method = "GET", [string]$Body, [HashTable]$Headers, [string]$UserAgent, [string]$ContentType, [psobject]$Form, [Microsoft.PowerShell.Commands.WebRequestSession]$WebSession, [string]$SessionVariable, [PSCredential]$Credential, [switch]$UseBasicParsing, [switch]$DisableKeepAlive, [int]$TimeoutSec, [int]$MaximumRedirection, [Uri]$Proxy, [PSCredential]$ProxyCredential, [switch]$ProxyUseDefaultCredentials, [switch]$PassThru, [switch]$NoProxy, [switch]$PreserveAuthorizationOnRedirect ) if (-not $script:WebSession) { Write-Verbose "Establishing Connection" $null = Connect-TuneService } $results = Invoke-RestMethod @PSBoundParameters if ($results.choices.message.content) { $results.choices.message.content } elseif ($results.data) { $results.data } else { $results } } |