Private/Format-Header.ps1
function Format-Header { <# .SYNOPSIS Outputs a header for use with Invoke-Endpoint .PARAMETER ENDPOINT Soltra endpoint .PARAMETER REQUEST Request object .PARAMETER HEADER Additional header values to add from input #> [CmdletBinding()] [OutputType()] param( [Parameter( Mandatory = $true, Position = 1)] [object] $Endpoint, [Parameter( Mandatory = $true, Position = 2)] [object] $Request, [Parameter(Position = 3)] [hashtable] $Header ) begin { # Set Id/Username, if not present if (-not($Soltra.Id)) { $Soltra.Id = Read-Host "Id" } # Set Secret/Password, if not present if (-not($Soltra.Secret)) { $Soltra.Secret = Read-Host "Secret" -AsSecureString } # Set authorization value $Authorization = Get-AuthPair } process { if ($Endpoint.Headers) { foreach ($Name in ($Endpoint.Headers | Get-Member -MemberType NoteProperty).Name) { # Add headers from endpoint $Request.Headers.Add($Name,($Endpoint.Headers.$Name)) } } if ($Header) { foreach ($Pair in $Header.GetEnumerator()) { # Add headers from input $Request.Headers.Add($Pair.Key, $Pair.Value) } } if ($Authorization) { # Add authorization $Request.Headers.Add('Authorization', $Authorization) } } } |