-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRemove-TriliumAttachment.ps1
More file actions
75 lines (61 loc) · 2.37 KB
/
Copy pathRemove-TriliumAttachment.ps1
File metadata and controls
75 lines (61 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
function Remove-TriliumAttachment {
<#
.SYNOPSIS
Removes a specific Trilium attachment by its ID.
.DESCRIPTION
Deletes a Trilium attachment using the provided AttachmentID. Supports pipeline input for AttachmentID. Requires authentication via Connect-TriliumAuth.
.PARAMETER AttachmentID
The ID of the attachment to remove. Accepts input from the pipeline.
Required? true
Position? 0
Default value None
Accept pipeline input? true
Accept wildcard characters? false
.PARAMETER SkipCertCheck
If specified, skips SSL certificate validation for the request.
Required? false
Position? Named
Default value None
Accept pipeline input? false
Accept wildcard characters? false
.EXAMPLE
Remove-TriliumAttachment -AttachmentID "evnnmvHTCgIn"
Removes the attachment with the specified ID.
.EXAMPLE
"evnnmvHTCgIn", "abc123" | Remove-TriliumAttachment
Removes multiple attachments by piping their IDs to the function.
.NOTES
This function requires that authentication has been set using Connect-TriliumAuth.
.LINK
https://github.com/ptmorris1/TriliumNext-Powershell-Module
#>
[CmdletBinding(SupportsShouldProcess = $true)]
[Alias('Delete-TriliumAttachment', 'dta', 'rta')]
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
}
}