Public/Remove-Transfer.ps1
|
function Remove-Transfer { <# .SYNOPSIS Removes a transfer entry. .DESCRIPTION Deletes a transfer from the data store by ID. .PARAMETER Id The ID of the transfer to remove. .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 Remove-Transfer -Id "abc123" .EXAMPLE Remove-Transfer -Id "abc123" -Budget "MyPersonalBudget" .OUTPUTS None #> [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] param( [Parameter(Mandatory, ValueFromPipelineByPropertyName)] [string]$Id, [Parameter()] [string]$Budget, [Parameter()] [string]$DataPath ) process { $resolvedPath = Resolve-DataPath -DataPath $DataPath -Budget $Budget if (-not $resolvedPath) { return } $transfers = Read-EntityData -EntityType 'Transfer' -DataPath $resolvedPath $transfer = $transfers | Where-Object { $_.Id -eq $Id } if (-not $transfer) { Write-Error "Transfer with ID '$Id' not found." return } if ($PSCmdlet.ShouldProcess($transfer.Name, "Remove transfer")) { $updatedTransfers = @($transfers | Where-Object { $_.Id -ne $Id }) if (Write-EntityData -EntityType 'Transfer' -Data $updatedTransfers -DataPath $resolvedPath) { Write-Verbose "Removed transfer: $($transfer.Name)" } } } } |