Public/Set-Note.ps1
Function Set-Note { <# .SYNOPSIS Update a note .DESCRIPTION Update a note .EXAMPLE Set-Note -TargetID 1 -Data 'new data' # Change data on note with ID 1 .EXAMPLE # Replace all existing tag2 tags with tagtwo tags Get-Note -Tags tag2 | Set-Note -RemoveTag tag2 -AddTag tagtwo .PARAMETER TargetID ID of the note to change .PARAMETER NewID Change the target note's ID to this .PARAMETER Data Change the target note's Data to this .PARAMETER Tags Change the target note's tags to this Removes all existing tags. Use RemoveTag or AddTag for iterative changes .PARAMETER UpdatedBy Change the target note's UpdatedBy to this. Defaults to $ENV:USERNAME .PARAMETER AddTag Add this to existing tags of the target note .PARAMETER RemoveTag Remove this to existing tags of the target note .PARAMETER RelatedIDs Change the target note's tags to this. Removes all existing RelatedIDs. Use RemoveRelatedID or AddRelatedID for iterative changes .PARAMETER AddRelatedID Add this to existing RelatedIDs of the target note .PARAMETER RemoveRelatedID Remove this from existing RelatedIDs of the target note .PARAMETER Source Change the target note's Source to this .PARAMETER Passthru Return newly created note #> [cmdletbinding(SupportsShouldProcess, ConfirmImpact = 'Medium')] param( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [alias('ID')] [string]$TargetID, [string]$NewID, [string[]]$Tags, [string[]]$AddTag, [string[]]$RemoveTag, [string[]]$AddRelatedID, [string[]]$RemoveRelatedID, [object]$Data, [string[]]$RelatedIDs, [string]$Source, [string]$UpdatedBy, [switch]$Passthru, [string]$Backend = $Script:TireFireConfig.Backend, [hashtable]$BackendConfig = $Script:TireFireConfig.BackendConfig ) process { $Params = @{} Write-Output TargetID, NewID, Tags, AddTag, RemoveTag, Data, Source, UpdatedBy, RelatedIDs, AddRelatedID, RemoveRelatedID, Passthru | ForEach-Object { $Key = $_ if($PSBoundParameters.ContainsKey($Key)){ $Value = $PSBoundParameters[$Key] $Params.add($Key, $Value) } } foreach($Param in $BackendConfig.Keys){ $Params.Add($Param, $BackendConfig[$Param]) } if(-not $Script:BackendHash.ContainsKey($Backend)){ Throw "$Backend is not a valid backend. Valid backends:`n$($Script:BackendHash.keys | Out-String)" } else { $BackendScript = $Script:BackendHash[$Backend].set } if ($PSCmdlet.ShouldProcess($TargetID, "Change Note with ID [$TargetID] on backend [$Backend]")) { . $BackendScript @Params } } } |