Public/Authentication/Get-FloRecruitSession.ps1
|
function Get-FloRecruitSession { <# .SYNOPSIS Gets information about the current FloRecruit session. .DESCRIPTION Returns information about the current FloRecruit session including connection status, token expiry, and rate limiting statistics. Does not return credentials. .EXAMPLE Get-FloRecruitSession .OUTPUTS PSCustomObject with session information. #> [CmdletBinding()] param() if (-not $Script:FloRecruitSession) { Write-Warning "Not connected to FloRecruit. Use Connect-FloRecruit to establish a session." return $null } $isTokenExpired = $Script:FloRecruitSession.TokenExpiry -lt (Get-Date) $timeUntilExpiry = $Script:FloRecruitSession.TokenExpiry - (Get-Date) # Calculate rate limit window info $windowElapsed = ((Get-Date) - $Script:FloRecruitSession.RateLimitWindowStart).TotalSeconds $windowRemaining = $Script:RateLimitWindowSeconds - $windowElapsed $requestsRemaining = $Script:RateLimitMaxRequests - $Script:FloRecruitSession.RequestCount return [PSCustomObject]@{ PSTypeName = 'FloRecruit.SessionInfo' OrganizationName = $Script:FloRecruitSession.OrganizationName Email = $Script:FloRecruitSession.Email BaseUrl = $Script:FloRecruitSession.BaseUrl ConnectedAt = $Script:FloRecruitSession.ConnectedAt TokenExpiry = $Script:FloRecruitSession.TokenExpiry IsTokenExpired = $isTokenExpired TimeUntilExpiry = if ($isTokenExpired) { $null } else { $timeUntilExpiry } RequestsInWindow = $Script:FloRecruitSession.RequestCount RequestsRemaining = $requestsRemaining WindowRemaining = [timespan]::FromSeconds($windowRemaining) } } |