Public/Get-Transfer.ps1
|
function Get-Transfer { <# .SYNOPSIS Retrieves transfer entries. .DESCRIPTION Gets one or more transfers from the data store. Can filter by name or ID. .PARAMETER Name Filter transfers by name. .PARAMETER Id Get a specific transfer by ID. .PARAMETER Budget Optional budget name to target. Uses active budget if not specified. .PARAMETER DataPath Optional custom path for data storage. Overrides budget-based paths. .EXAMPLE Get-Transfer .EXAMPLE Get-Transfer -Name "Savings" .EXAMPLE Get-Transfer -Budget "MyPersonalBudget" .OUTPUTS Array of Transfer objects #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'ByName')] [string]$Name, [Parameter(ParameterSetName = 'ById')] [string]$Id, [Parameter()] [string]$Budget, [Parameter()] [string]$DataPath ) $resolvedPath = Resolve-DataPath -DataPath $DataPath -Budget $Budget if (-not $resolvedPath) { return @() } $transfers = Read-EntityData -EntityType 'Transfer' -DataPath $resolvedPath if ($PSCmdlet.ParameterSetName -eq 'ByName') { $transfers = $transfers | Where-Object { $_.Name -like "*$Name*" } } elseif ($PSCmdlet.ParameterSetName -eq 'ById') { $transfers = $transfers | Where-Object { $_.Id -eq $Id } } return $transfers } |