misskey_api/endpoint/drive/files/
show.rs

1use crate::model::{drive::DriveFile, id::Id};
2
3use serde::Serialize;
4use url::Url;
5
6#[derive(Serialize, Debug, Clone)]
7#[serde(rename_all = "camelCase")]
8pub struct Request {
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub file_id: Option<Id<DriveFile>>,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub url: Option<Url>,
13}
14
15impl misskey_core::Request for Request {
16    type Response = DriveFile;
17    const ENDPOINT: &'static str = "drive/files/show";
18}
19
20#[cfg(test)]
21mod tests {
22    use super::Request;
23    use crate::test::{ClientExt, HttpClientExt, TestClient};
24
25    #[tokio::test]
26    async fn request_with_id() {
27        let client = TestClient::new();
28        let file = client.create_text_file("test.txt", "test").await;
29        client
30            .test(Request {
31                file_id: Some(file.id),
32                url: None,
33            })
34            .await;
35    }
36
37    #[tokio::test]
38    async fn request_with_url() {
39        let client = TestClient::new();
40        let file = client.create_text_file("test.txt", "test").await;
41        client
42            .test(Request {
43                file_id: None,
44                url: Some(file.url.unwrap()),
45            })
46            .await;
47    }
48}