Private/Get-GraphStatusCode.ps1
|
function Get-GraphStatusCode { <# .SYNOPSIS Extracts an HTTP status code from a Graph-related error record .DESCRIPTION Looks for status code information across the common exception shapes returned by Invoke-MgGraphRequest and returns the integer HTTP status code when available. #> [CmdletBinding()] [OutputType([Nullable[int]])] param( [Parameter(Mandatory)] [System.Management.Automation.ErrorRecord]$ErrorRecord ) $statusCandidates = @( $ErrorRecord.Exception.ResponseStatusCode, $ErrorRecord.Exception.StatusCode, $ErrorRecord.Exception.Response.StatusCode ) foreach ($candidate in $statusCandidates) { if ($null -eq $candidate) { continue } if ($candidate -is [int] -or $candidate.GetType().IsEnum) { return [int]$candidate } $parsedStatus = 0 if ([int]::TryParse([string]$candidate, [ref]$parsedStatus)) { return $parsedStatus } } return $null } |