Internal/ConvertTo-JiraSession.ps1
function ConvertTo-JiraSession { [CmdletBinding()] param( [Parameter(Mandatory = $true)] $WebResponse, [Parameter(Mandatory = $true)] $Session, [Parameter(Mandatory = $true)] [String] $Username ) process { $obj = ConvertFrom-Json2 -InputObject $WebResponse # Write-Debug "[ConvertTo-JiraSession] Defining standard properties" $props = @{ 'WebSession' = $Session; 'JSessionID' = $obj.session.value; 'LoginInfo' = $obj.loginInfo; } if ($Username) { # Write-Debug "[ConvertTo-JiraSession] Adding username" $props.Username = $Username } # Write-Debug "[ConvertTo-JiraSession] Creating PSObject out of properties" $result = New-Object -TypeName PSObject -Property $props # Write-Debug "[ConvertTo-JiraSession] Inserting type name information" $result.PSObject.TypeNames.Insert(0, 'JiraPS.Session') # Write-Debug "[ConvertTo-JiraSession] Inserting custom toString() method" $result | Add-Member -MemberType ScriptMethod -Name "ToString" -Force -Value { Write-Output "JiraSession[JSessionID=$($this.JSessionID)]" } # Write-Debug "[ConvertTo-JiraSession] Outputting object" Write-Output $result } } |