misskey_api/endpoint/notifications/
create.rs

1use serde::Serialize;
2use typed_builder::TypedBuilder;
3use url::Url;
4
5#[derive(Serialize, Debug, Clone, TypedBuilder)]
6#[serde(rename_all = "camelCase")]
7#[builder(doc)]
8pub struct Request {
9    #[builder(setter(into))]
10    pub body: String,
11    #[builder(default, setter(strip_option, into))]
12    pub header: Option<String>,
13    #[builder(default, setter(strip_option))]
14    pub icon: Option<Url>,
15}
16
17impl misskey_core::Request for Request {
18    type Response = ();
19    const ENDPOINT: &'static str = "notifications/create";
20}
21
22#[cfg(test)]
23mod tests {
24    use super::Request;
25    use crate::test::{ClientExt, TestClient};
26
27    #[tokio::test]
28    async fn request() {
29        let client = TestClient::new();
30        client
31            .test(Request {
32                body: "hello".to_string(),
33                header: None,
34                icon: None,
35            })
36            .await;
37    }
38
39    #[tokio::test]
40    async fn request_with_options() {
41        let client = TestClient::new();
42        let url = client.avatar_url().await;
43
44        client
45            .test(Request {
46                body: "hi".to_string(),
47                header: Some("header".to_string()),
48                icon: Some(url),
49            })
50            .await;
51    }
52}