kanidm_client/
message.rs

1use crate::{ClientError, KanidmClient};
2use kanidm_proto::scim_v1::{
3    client::{ScimEntryMessage, ScimListMessage},
4    ScimEntryGetQuery,
5};
6use uuid::Uuid;
7
8impl KanidmClient {
9    pub async fn idm_message_list(
10        &self,
11        query: Option<ScimEntryGetQuery>,
12    ) -> Result<ScimListMessage, ClientError> {
13        self.perform_get_request_query("/scim/v1/Message", query)
14            .await
15    }
16
17    /// Queue a test message to be sent to a person.
18    pub async fn idm_message_send_test(&self, to: &str) -> Result<(), ClientError> {
19        self.perform_get_request(&format!("/scim/v1/Person/{to}/_message/_send_test"))
20            .await
21    }
22
23    pub async fn idm_message_list_ready(&self) -> Result<ScimListMessage, ClientError> {
24        self.perform_get_request("/scim/v1/Message/_ready").await
25    }
26
27    pub async fn idm_message_get(&self, message_id: Uuid) -> Result<ScimEntryMessage, ClientError> {
28        self.perform_get_request(&format!("/scim/v1/Message/{message_id}"))
29            .await
30    }
31
32    pub async fn idm_message_mark_sent(&self, message_id: Uuid) -> Result<(), ClientError> {
33        self.perform_post_request(&format!("/scim/v1/Message/{message_id}/_sent"), ())
34            .await
35    }
36}