Skip to content

Commit

Permalink
consolidate header selection functions (OpenAPITools#5889)
Browse files Browse the repository at this point in the history
  • Loading branch information
wing328 authored and MikailBag committed May 31, 2020
1 parent 45f3a3f commit 4198610
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down Expand Up @@ -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
}
}

Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down Expand Up @@ -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
}
}

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 4198610

Please sign in to comment.