Skip to main content

resourcespace_client/api/
message.rs

1use serde::Serialize;
2
3use crate::client::Client;
4use crate::error::RsError;
5
6/// Sub-API for message endpoints.
7#[derive(Debug)]
8pub struct MessageApi<'a> {
9    client: &'a Client,
10}
11
12impl<'a> MessageApi<'a> {
13    pub(crate) fn new(client: &'a Client) -> Self {
14        Self { client }
15    }
16
17    /// Retrieve the given message ID.
18    ///
19    /// Permissions are always honoured so messages to other users will not be accessible.
20    ///
21    /// ## Arguments
22    /// * `request` - Parameters built via [`GetUserMessageRequest`]
23    ///
24    /// ## TODO: Errors
25    ///
26    /// ## Examples
27    /// ```no_run
28    /// # use resourcespace_client::{Client, api::message::GetUserMessageRequest};
29    /// # async fn example(client: Client) -> Result<(), Box<dyn std::error::Error>> {
30    /// let results = client.message()
31    ///     .get_user_message(
32    ///         GetUserMessageRequest::new(2)
33    ///     )
34    ///     .await?;
35    /// # Ok(())
36    /// # }
37    /// ```
38    pub async fn get_user_message(
39        &self,
40        request: GetUserMessageRequest,
41    ) -> Result<serde_json::Value, RsError> {
42        self.client
43            .send_request("get_user_message", reqwest::Method::GET, request)
44            .await
45    }
46}
47
48#[derive(Clone, Debug, PartialEq, Serialize)]
49pub struct GetUserMessageRequest {
50    /// The ID of the message to retrieve.
51    #[serde(rename = "ref")]
52    pub r#ref: u32,
53}
54
55impl GetUserMessageRequest {
56    pub fn new(r#ref: u32) -> Self {
57        Self { r#ref }
58    }
59}