public/Remove-TriliumAttachment.ps1
function Remove-TriliumAttachment { <# .SYNOPSIS Removes a specific Trilium attachment. .DESCRIPTION This function deletes a Trilium attachment based on the provided attachment ID. .PARAMETER AttachmentID The attachment ID to remove. Required? true Position? 0 Default value None Accept pipeline input? false Accept wildcard characters? false .PARAMETER SkipCertCheck Option to skip certificate check. Required? false Position? Named Default value None Accept pipeline input? false Accept wildcard characters? false .EXAMPLE Remove-TriliumAttachment -AttachmentID "evnnmvHTCgIn" .NOTES This function requires that the authentication has been set using Connect-TriliumAuth. .LINK https://github.com/ptmorris1/TriliumNext-Powershell-Module #> [CmdletBinding(SupportsShouldProcess = $true)] [Alias('Delete-TriliumAttachment', 'dtaa', 'rtaa')] param ( [Parameter(Mandatory = $true, ValueFromPipeline = $true)] [ValidateNotNullOrEmpty()] [string]$AttachmentID, [switch]$SkipCertCheck ) process { try { if ($SkipCertCheck -eq $true) { $PSDefaultParameterValues = @{'Invoke-RestMethod:SkipCertificateCheck' = $true } } $TriliumHeaders = @{} $TriliumHeaders.Add('Authorization', "$($TriliumCreds.Authorization)") $uri = "$($TriliumCreds.URL)/attachments/$AttachmentID" if ($PSCmdlet.ShouldProcess($uri, 'Remove attachment')) { Invoke-RestMethod -Uri $uri -Headers $TriliumHeaders -SkipHeaderValidation -Method Delete } } catch { $_.Exception.Response } } begin { if (!$global:TriliumCreds) { Write-Error -Message 'Need to run: Connect-TriliumAuth'; exit } } end { return } } |