misskey_api/endpoint/drive/files/
show.rs1use 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}