client: PUT /_matrix/client/r0/rooms/{roomId}/redact/{eventId}/{txnId}
parent
31dd031269
commit
b110ee27fa
|
@ -11,6 +11,7 @@ use matrix_sdk_common::{
|
||||||
message::send_message_event,
|
message::send_message_event,
|
||||||
read_marker::set_read_marker,
|
read_marker::set_read_marker,
|
||||||
receipt::create_receipt,
|
receipt::create_receipt,
|
||||||
|
redact::redact_event,
|
||||||
state::send_state_event_for_key,
|
state::send_state_event_for_key,
|
||||||
typing::create_typing_event::{Request as TypingRequest, Typing},
|
typing::create_typing_event::{Request as TypingRequest, Typing},
|
||||||
},
|
},
|
||||||
|
@ -561,4 +562,51 @@ impl Joined {
|
||||||
|
|
||||||
self.client.send(request, None).await
|
self.client.send(request, None).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Strips all information out of an event of the room.
|
||||||
|
///
|
||||||
|
/// Returns the [`redact_event::Response`] from the server.
|
||||||
|
///
|
||||||
|
/// This cannot be undone. Users may redact their own events, and any user
|
||||||
|
/// with a power level greater than or equal to the redact power level of
|
||||||
|
/// the room may redact events there.
|
||||||
|
///
|
||||||
|
/// # Arguments
|
||||||
|
///
|
||||||
|
/// * `event_id` - The ID of the event to redact
|
||||||
|
///
|
||||||
|
/// * `reason` - The reason for the event being redacted.
|
||||||
|
///
|
||||||
|
/// * `txn_id` - A unique [`Uuid`] that can be attached to this event as
|
||||||
|
/// its transaction ID. If not given one is created for the message.
|
||||||
|
///
|
||||||
|
/// # Example
|
||||||
|
///
|
||||||
|
/// ```no_run
|
||||||
|
/// # futures::executor::block_on(async {
|
||||||
|
/// # let homeserver = url::Url::parse("http://localhost:8080").unwrap();
|
||||||
|
/// # let mut client = matrix_sdk::Client::new(homeserver).unwrap();
|
||||||
|
/// # let room_id = matrix_sdk::identifiers::room_id!("!test:localhost");
|
||||||
|
/// let room = client
|
||||||
|
/// .get_joined_room(&room_id)
|
||||||
|
/// .unwrap();
|
||||||
|
/// let event_id = matrix_sdk::identifiers::event_id!("$xxxxxx:example.org");
|
||||||
|
/// let reason = Some("Indecent material");
|
||||||
|
/// room.redact(&event_id, reason, None).await.unwrap();
|
||||||
|
/// # })
|
||||||
|
/// ```
|
||||||
|
pub async fn redact(
|
||||||
|
&self,
|
||||||
|
event_id: &EventId,
|
||||||
|
reason: Option<&str>,
|
||||||
|
txn_id: Option<Uuid>,
|
||||||
|
) -> Result<redact_event::Response> {
|
||||||
|
let txn_id = txn_id.unwrap_or_else(Uuid::new_v4).to_string();
|
||||||
|
let request = assign!(
|
||||||
|
redact_event::Request::new(self.inner.room_id(), event_id, &txn_id),
|
||||||
|
{ reason }
|
||||||
|
);
|
||||||
|
|
||||||
|
self.client.send(request, None).await
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue