mirror of
https://github.com/Thumbscrew/PSMatrix.git
synced 2025-07-01 10:35:25 +00:00
add Remove-MatrixRoomMessage
(#4)
* fix debug url * fix `MatrixMessage` type * add `Remove-MatrixRoomMessage` * add `Get-Help` block
This commit is contained in:
@ -16,7 +16,6 @@ function Get-MatrixRoomMessages {
|
||||
[int]$Limit = 50
|
||||
)
|
||||
|
||||
Write-Debug "URL: $url"
|
||||
$headers = Get-MatrixAuthHeaders -AccessToken $AccessToken
|
||||
|
||||
try {
|
||||
@ -51,6 +50,8 @@ function Get-MatrixRoomMessages {
|
||||
+ "?filter=$filterId" `
|
||||
+ "&full_state=true&set_presence=offline")
|
||||
|
||||
Write-Debug "URL: $url"
|
||||
|
||||
$res = Invoke-RestMethod -Uri $url -Headers $headers
|
||||
} catch {
|
||||
Write-Error $_
|
||||
|
64
public/Remove-MatrixRoomMessage.ps1
Normal file
64
public/Remove-MatrixRoomMessage.ps1
Normal file
@ -0,0 +1,64 @@
|
||||
<#
|
||||
.Synopsis
|
||||
Redact a Matrix message in a given Room ID.
|
||||
|
||||
.Description
|
||||
Redact a Matrix message in a given Room ID from _matrix/client/v3/rooms/{roomId}/redact/{eventId}/{txnId}. See https://spec.matrix.org/v1.2/client-server-api/#put_matrixclientv3roomsroomidredacteventidtxnid.
|
||||
|
||||
.Parameter ServerUrl
|
||||
URL for the Matrix server to log into, for example "https://matrix.example.com".
|
||||
|
||||
.Parameter AccessToken
|
||||
A SecureString containing the Matrix access token.
|
||||
|
||||
.Parameter RoomId
|
||||
The Matrix room ID to redact the message from.
|
||||
|
||||
.Parameter Message
|
||||
The MatrixMessage object that contains the Event ID to redact.
|
||||
|
||||
.Parameter Reason
|
||||
The reason to provide for the redaction (optional).
|
||||
|
||||
.Example
|
||||
Remove-MatrixRoomMessage -ServerUrl $server -AccessToken $token -RoomId "!ehXvUhWNASUkSLvAGP:matrix.org" -Message $message -Reason "Redacted by PSMatrix"
|
||||
#>
|
||||
function Remove-MatrixRoomMessage {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[string]
|
||||
$ServerUrl,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[SecureString]
|
||||
$AccessToken,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[string]
|
||||
$RoomId,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[MatrixMessage]
|
||||
$Message,
|
||||
|
||||
[Parameter(Mandatory=$false)]
|
||||
[string]
|
||||
$Reason
|
||||
)
|
||||
|
||||
$eventId = $Message.EventID
|
||||
$txnId = New-Guid
|
||||
$url = New-MatrixUrl -ServerUrl $ServerUrl -ApiPath "_matrix/client/v3/rooms/$RoomId/redact/$eventId/$txnId"
|
||||
Write-Debug "URL: $url"
|
||||
$method = "Put"
|
||||
$headers = Get-MatrixAuthHeaders -AccessToken $AccessToken
|
||||
$body = @{
|
||||
reason = $Reason
|
||||
} | ConvertTo-Json
|
||||
|
||||
try {
|
||||
return Invoke-RestMethod -Uri $url -Method $method -Headers $headers -Body $body
|
||||
} catch {
|
||||
Write-Error $_
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user