Update api_client.mustache

This commit is contained in:
condorcorde 2024-04-06 21:00:28 +02:00
parent a636968b22
commit b14ff289b6
3 changed files with 35 additions and 33 deletions

View File

@ -43,7 +43,10 @@ function Invoke-ApiClient {
$Configuration = Get-Configuration $Configuration = Get-Configuration
$RequestUri = $Configuration["BaseUrl"] + $Uri $RequestUri = $Configuration["BaseUrl"] + $Uri
$DefaultHeaders = $Configuration["DefaultHeaders"]
# should make sure that SkipCertificateCheck is not set for PowerShell 5
$SkipCertificateCheck = $Configuration["SkipCertificateCheck"] $SkipCertificateCheck = $Configuration["SkipCertificateCheck"]
$Proxy = $Configuration["Proxy"]
# cookie parameters # cookie parameters
foreach ($Parameter in $CookieParameters.GetEnumerator()) { foreach ($Parameter in $CookieParameters.GetEnumerator()) {
@ -63,8 +66,8 @@ function Invoke-ApiClient {
$HeaderParameters['Accept'] = $Accept $HeaderParameters['Accept'] = $Accept
} }
[string]$MultiPartBoundary = $null # Content-Type and multipart handling
$ContentType= SelectHeaders -Headers $ContentTypes $ContentType = SelectHeaders -Headers $ContentTypes
if ($ContentType) { if ($ContentType) {
$HeaderParameters['Content-Type'] = $ContentType $HeaderParameters['Content-Type'] = $ContentType
if ($ContentType -eq 'multipart/form-data') { if ($ContentType -eq 'multipart/form-data') {
@ -73,7 +76,7 @@ function Invoke-ApiClient {
} }
# add default headers if any # add default headers if any
foreach ($header in $Configuration["DefaultHeaders"].GetEnumerator()) { foreach ($header in $DefaultHeaders.GetEnumerator()) {
$HeaderParameters[$header.Name] = $header.Value $HeaderParameters[$header.Name] = $header.Value
} }
@ -104,32 +107,29 @@ function Invoke-ApiClient {
} }
} }
# syntax must be adapted to version
$PSMajorVersion = $PSVersionTable.PSVersion.Major
# use splatting to pass parameters # use splatting to pass parameters
$Params = @{} $Params = @{}
$Params.Uri = $UriBuilder.Uri $Params.Uri = $UriBuilder.Uri
$Params.Method = $Method $Params.Method = $Method
$Params.Headers = $HeaderParameters $Params.Headers = $HeaderParameters
$Params.Body = $RequestBody
$Params.ErrorAction = 'Stop' $Params.ErrorAction = 'Stop'
# SkipCertificateCheck not defined for PS5
if ($SkipCertificateCheck -eq $true -and $PSMajorVersion -gt 5) { if ($SkipCertificateCheck -eq $true) {
$Params.SkipCertificateCheck = $true $Params.SkipCertificateCheck = $true
} }
if ($null -ne $Proxy) {
$effectiveProxy = $Proxy.GetProxy($UriBuilder.Uri)
# do not set proxy if it is null or same as target Uri # do not set proxy if it is null or same as target Uri
if ($null -ne $Configuration["Proxy"]) { if ($null -ne $effectiveProxy -and $effectiveProxy.AbsoluteUri -ne $UriBuilder.Uri) {
$proxy = $Configuration["Proxy"].GetProxy($UriBuilder.Uri) $Params.Proxy = $effectiveProxy.AbsoluteUri
if ($null -ne $proxy -and $proxy.AbsoluteUri -ne $UriBuilder.Uri) {
$Params.Proxy = $proxy.AbsoluteUri
$Params.ProxyUseDefaultCredentials = $true $Params.ProxyUseDefaultCredentials = $true
} }
} }
# use Invoke-RestApi if Content-Type is 'multipart/form-data', Invoke-WebRequest otherwise # use Invoke-RestApi if Content-Type is 'multipart/form-data', Invoke-WebRequest otherwise
if ($MultiPart) { if ($MultiPart) {
if ($PSMajorVersion -eq 5) { if ($PSVersionTable.PSVersion.Major -eq 5) {
# preset null return values as not supported by Invoke-RestMethod on PS5 # preset null return values as not supported by Invoke-RestMethod on PS5
$ResponseHeaders = $null $ResponseHeaders = $null
$ResponseStatusCode = $null $ResponseStatusCode = $null
@ -147,6 +147,7 @@ function Invoke-ApiClient {
Headers = $ResponseHeaders Headers = $ResponseHeaders
} }
} else { } else {
$Params.Body = $RequestBody
$Params.UseBasicParsing = $true $Params.UseBasicParsing = $true
$Response = Invoke-WebRequest @Params $Response = Invoke-WebRequest @Params

View File

@ -42,7 +42,10 @@ function Invoke-PSApiClient {
$Configuration = Get-PSConfiguration $Configuration = Get-PSConfiguration
$RequestUri = $Configuration["BaseUrl"] + $Uri $RequestUri = $Configuration["BaseUrl"] + $Uri
$DefaultHeaders = $Configuration["DefaultHeaders"]
# should make sure that SkipCertificateCheck is not set for PowerShell 5
$SkipCertificateCheck = $Configuration["SkipCertificateCheck"] $SkipCertificateCheck = $Configuration["SkipCertificateCheck"]
$Proxy = $Configuration["Proxy"]
# cookie parameters # cookie parameters
foreach ($Parameter in $CookieParameters.GetEnumerator()) { foreach ($Parameter in $CookieParameters.GetEnumerator()) {
@ -62,8 +65,8 @@ function Invoke-PSApiClient {
$HeaderParameters['Accept'] = $Accept $HeaderParameters['Accept'] = $Accept
} }
[string]$MultiPartBoundary = $null # Content-Type and multipart handling
$ContentType= SelectHeaders -Headers $ContentTypes $ContentType = SelectHeaders -Headers $ContentTypes
if ($ContentType) { if ($ContentType) {
$HeaderParameters['Content-Type'] = $ContentType $HeaderParameters['Content-Type'] = $ContentType
if ($ContentType -eq 'multipart/form-data') { if ($ContentType -eq 'multipart/form-data') {
@ -72,7 +75,7 @@ function Invoke-PSApiClient {
} }
# add default headers if any # add default headers if any
foreach ($header in $Configuration["DefaultHeaders"].GetEnumerator()) { foreach ($header in $DefaultHeaders.GetEnumerator()) {
$HeaderParameters[$header.Name] = $header.Value $HeaderParameters[$header.Name] = $header.Value
} }
@ -120,32 +123,29 @@ function Invoke-PSApiClient {
} }
} }
# syntax must be adapted to version
$PSMajorVersion = $PSVersionTable.PSVersion.Major
# use splatting to pass parameters # use splatting to pass parameters
$Params = @{} $Params = @{}
$Params.Uri = $UriBuilder.Uri $Params.Uri = $UriBuilder.Uri
$Params.Method = $Method $Params.Method = $Method
$Params.Headers = $HeaderParameters $Params.Headers = $HeaderParameters
$Params.Body = $RequestBody
$Params.ErrorAction = 'Stop' $Params.ErrorAction = 'Stop'
# SkipCertificateCheck not defined for PS5
if ($SkipCertificateCheck -eq $true -and $PSMajorVersion -gt 5) { if ($SkipCertificateCheck -eq $true) {
$Params.SkipCertificateCheck = $true $Params.SkipCertificateCheck = $true
} }
if ($null -ne $Proxy) {
$effectiveProxy = $Proxy.GetProxy($UriBuilder.Uri)
# do not set proxy if it is null or same as target Uri # do not set proxy if it is null or same as target Uri
if ($null -ne $Configuration["Proxy"]) { if ($null -ne $effectiveProxy -and $effectiveProxy.AbsoluteUri -ne $UriBuilder.Uri) {
$proxy = $Configuration["Proxy"].GetProxy($UriBuilder.Uri) $Params.Proxy = $effectiveProxy.AbsoluteUri
if ($null -ne $proxy -and $proxy.AbsoluteUri -ne $UriBuilder.Uri) {
$Params.Proxy = $proxy.AbsoluteUri
$Params.ProxyUseDefaultCredentials = $true $Params.ProxyUseDefaultCredentials = $true
} }
} }
# use Invoke-RestApi if Content-Type is 'multipart/form-data', Invoke-WebRequest otherwise # use Invoke-RestApi if Content-Type is 'multipart/form-data', Invoke-WebRequest otherwise
if ($MultiPart) { if ($MultiPart) {
if ($PSMajorVersion -eq 5) { if ($PSVersionTable.PSVersion.Major -eq 5) {
# preset null return values as not supported by Invoke-RestMethod on PS5 # preset null return values as not supported by Invoke-RestMethod on PS5
$ResponseHeaders = $null $ResponseHeaders = $null
$ResponseStatusCode = $null $ResponseStatusCode = $null
@ -163,6 +163,7 @@ function Invoke-PSApiClient {
Headers = $ResponseHeaders Headers = $ResponseHeaders
} }
} else { } else {
$Params.Body = $RequestBody
$Params.UseBasicParsing = $true $Params.UseBasicParsing = $true
$Response = Invoke-WebRequest @Params $Response = Invoke-WebRequest @Params