Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
consolidate header selection functions
  • Loading branch information
wing328 committed Apr 10, 2020
commit f668253f36b45aefbbbff640b393419933bf6e22
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