misskey_api/endpoint/notifications/
create.rs1use 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}