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