Public/Get-BridgePreviousStatus.ps1
function Get-BridgePreviousStatus { [CmdletBinding()] <# .SYNOPSIS Ανακτά προηγούμενη αποθηκευμένη κατάσταση γέφυρας από JSON. .DESCRIPTION Η Get-BridgePreviousStatus διαβάζει αρχείο JSON που περιέχει καταγεγραμμένη κατάσταση γεφυρών. .PARAMETER InputFile Η διαδρομή του αρχείου JSON. .OUTPUTS [object[]] - Λίστα καταστάσεων ή κενό array αν δεν υπάρχει. .EXAMPLE Get-BridgePreviousStatus -InputFile 'C:\Logs\previous-status.json' .NOTES Ασφαλής ανάγνωση με structured error handling και fallback. #> [OutputType([object[]])] param ( [Parameter(Mandatory)][string]$InputFile ) if (-not (Test-Path $InputFile)) { $writeBridgeLogSplat = @{ Stage = 'Σφάλμα' Message = "Το αρχείο $($InputFile) δεν βρέθηκε – επιστρέφεται κενό array." Level = 'Warning' } Write-BridgeLog @writeBridgeLogSplat return @() } try { $getContentSplat = @{ Path = $InputFile Raw = $true Encoding = 'UTF8' } $convertFromJsonSplat = @{ Depth = 10 } return Get-Content @getContentSplat | ConvertFrom-Json @convertFromJsonSplat } catch { $writeBridgeLogSplat = @{ Stage = 'Σφάλμα' Message = "Σφάλμα κατά την ανάλυση JSON: $($_.Exception.Message)" Level = 'Warning' } Write-BridgeLog @writeBridgeLogSplat $PSCmdlet.ThrowTerminatingError( [System.Management.Automation.ErrorRecord]::new( ([System.Exception]::new("Σφάλμα κατά την ανάλυση JSON: $($_.Exception.Message)")), 'BridgeJsonParseError', [System.Management.Automation.ErrorCategory]::InvalidData, $InputFile ) ) } } |