misskey_api/endpoint/drive/folders/
create.rs

1use crate::model::{drive::DriveFolder, id::Id};
2
3use serde::Serialize;
4
5#[derive(Serialize, Default, Debug, Clone)]
6#[serde(rename_all = "camelCase")]
7pub struct Request {
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub name: Option<String>,
10    pub parent_id: Option<Id<DriveFolder>>,
11}
12
13impl misskey_core::Request for Request {
14    type Response = DriveFolder;
15    const ENDPOINT: &'static str = "drive/folders/create";
16}
17
18#[cfg(test)]
19mod tests {
20    use super::Request;
21    use crate::test::{ClientExt, TestClient};
22
23    #[tokio::test]
24    async fn request() {
25        let client = TestClient::new();
26        client.test(Request::default()).await;
27    }
28
29    #[tokio::test]
30    async fn request_with_name() {
31        let client = TestClient::new();
32        client
33            .test(Request {
34                name: Some("folder".to_string()),
35                parent_id: None,
36            })
37            .await;
38    }
39
40    #[tokio::test]
41    async fn request_with_parent() {
42        let client = TestClient::new();
43        let folder = client
44            .test(Request {
45                name: None,
46                parent_id: None,
47            })
48            .await;
49        client
50            .test(Request {
51                name: None,
52                parent_id: Some(folder.id),
53            })
54            .await;
55    }
56}