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}