Private/Get-IRODFavorites.ps1
|
function Get-IRODFavorites { <# .SYNOPSIS Gets the list of favorite remediation script IDs. #> $configPath = Join-Path $env:APPDATA "IROD" $favoritesFile = Join-Path $configPath "favorites.json" if (Test-Path $favoritesFile) { try { $content = Get-Content $favoritesFile -Raw | ConvertFrom-Json return @($content) } catch { return @() } } return @() } function Save-IRODFavorites { <# .SYNOPSIS Saves the list of favorite remediation script IDs. #> param( [string[]]$FavoriteIds ) $configPath = Join-Path $env:APPDATA "IROD" $favoritesFile = Join-Path $configPath "favorites.json" # Create directory if it doesn't exist if (-not (Test-Path $configPath)) { New-Item -Path $configPath -ItemType Directory -Force | Out-Null } $FavoriteIds | ConvertTo-Json | Set-Content $favoritesFile -Force } function Add-IRODFavorite { <# .SYNOPSIS Adds a script ID to favorites. #> param( [string]$ScriptId ) $favorites = @(Get-IRODFavorites) if ($ScriptId -notin $favorites) { $favorites += $ScriptId Save-IRODFavorites -FavoriteIds $favorites } } function Remove-IRODFavorite { <# .SYNOPSIS Removes a script ID from favorites. #> param( [string]$ScriptId ) $favorites = @(Get-IRODFavorites) $favorites = $favorites | Where-Object { $_ -ne $ScriptId } Save-IRODFavorites -FavoriteIds @($favorites) } function Test-IRODFavorite { <# .SYNOPSIS Tests if a script ID is a favorite. #> param( [string]$ScriptId ) $favorites = Get-IRODFavorites return $ScriptId -in $favorites } |