consolidate header selection functions (#5889)

This commit is contained in:
William Cheng
2020-04-11 00:39:33 +08:00
committed by GitHub
parent 59c3a3127b
commit b7dfd3b2a7
2 changed files with 24 additions and 62 deletions

View File

@@ -49,12 +49,12 @@ function Invoke-{{{apiNamePrefix}}}ApiClient {
}
# accept, content-type headers
$Accept = SelectAcceptHeaders -Accepts $Accepts
$Accept = SelectHeaders -Headers $Accepts
if ($Accept) {
$HeaderParameters['Accept'] = $Accept
}
$ContentType= SelectContentTypeHeaders -ContentTypes $ContentTypes
$ContentType= SelectHeaders -Headers $ContentTypes
if ($ContentType) {
$HeaderParameters['Content-Type'] = $ContentType
}
@@ -114,43 +114,24 @@ function Invoke-{{{apiNamePrefix}}}ApiClient {
}
}
function SelectAcceptHeaders {
# Select JSON MIME if present, otherwise choose the first one if available
function SelectHeaders {
Param(
[Parameter(Mandatory)]
[AllowEmptyCollection()]
[String[]]$Accepts
[String[]]$Headers
)
foreach ($Accept in $Accepts) {
if (IsJsonMIME -MIME $Accept) {
return $Accept
foreach ($Header in $Headers) {
if (IsJsonMIME -MIME $Header) {
return $Header
}
}
if (!($Accepts) -or $Accepts.Count -eq 0) {
if (!($Headers) -or $Headers.Count -eq 0) {
return $null
} else {
return $Accepts[0] # return the first one
}
}
function SelectContentTypeHeaders {
Param(
[Parameter(Mandatory)]
[AllowEmptyCollection()]
[String[]]$ContentTypes
)
foreach ($ContentType in $ContentTypes) {
if (IsJsonMIME -MIME $ContentType) {
return $ContentType
}
}
if (!($ContentTypes) -or $ContentTypes.Count -eq 0) {
return $null
} else {
return $ContentTypes[0] # return the first one
return $Headers[0] # return the first one
}
}
@@ -190,12 +171,12 @@ function DeserializeResponse {
if ($ContentTypes) {
$ContentType = $null
if ($ContentTypes.Count -gt 1) {
$ContentType = SelectContentTypeHeaders -ContentTypes $ContentTypes
$ContentType = SelectHeaders -Headers $ContentTypes
} else {
$ContentType = $ContentTypes[0]
}
if (IsJsonMIME -MIME $ContentType) { # JSON
if (IsJsonMIME -MIME $ContentType) { # JSON
return ConvertFrom-Json $Response
} else { # XML, file, etc
return $Response

View File

@@ -55,12 +55,12 @@ function Invoke-PSApiClient {
}
# accept, content-type headers
$Accept = SelectAcceptHeaders -Accepts $Accepts
$Accept = SelectHeaders -Headers $Accepts
if ($Accept) {
$HeaderParameters['Accept'] = $Accept
}
$ContentType= SelectContentTypeHeaders -ContentTypes $ContentTypes
$ContentType= SelectHeaders -Headers $ContentTypes
if ($ContentType) {
$HeaderParameters['Content-Type'] = $ContentType
}
@@ -120,43 +120,24 @@ function Invoke-PSApiClient {
}
}
function SelectAcceptHeaders {
# Select JSON MIME if present, otherwise choose the first one if available
function SelectHeaders {
Param(
[Parameter(Mandatory)]
[AllowEmptyCollection()]
[String[]]$Accepts
[String[]]$Headers
)
foreach ($Accept in $Accepts) {
if (IsJsonMIME -MIME $Accept) {
return $Accept
foreach ($Header in $Headers) {
if (IsJsonMIME -MIME $Header) {
return $Header
}
}
if (!($Accepts) -or $Accepts.Count -eq 0) {
if (!($Headers) -or $Headers.Count -eq 0) {
return $null
} else {
return $Accepts[0] # return the first one
}
}
function SelectContentTypeHeaders {
Param(
[Parameter(Mandatory)]
[AllowEmptyCollection()]
[String[]]$ContentTypes
)
foreach ($ContentType in $ContentTypes) {
if (IsJsonMIME -MIME $ContentType) {
return $ContentType
}
}
if (!($ContentTypes) -or $ContentTypes.Count -eq 0) {
return $null
} else {
return $ContentTypes[0] # return the first one
return $Headers[0] # return the first one
}
}
@@ -196,12 +177,12 @@ function DeserializeResponse {
if ($ContentTypes) {
$ContentType = $null
if ($ContentTypes.Count -gt 1) {
$ContentType = SelectContentTypeHeaders -ContentTypes $ContentTypes
$ContentType = SelectHeaders -Headers $ContentTypes
} else {
$ContentType = $ContentTypes[0]
}
if (IsJsonMIME -MIME $ContentType) { # JSON
if (IsJsonMIME -MIME $ContentType) { # JSON
return ConvertFrom-Json $Response
} else { # XML, file, etc
return $Response