1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
use crate::api_core::common::FileMetadataInfo; use crate::api_core::Endpoint; #[derive(Debug, Clone, Deserialize)] pub struct SearchFilesResponse { pub file_ids: Vec<u64>, } #[derive(Clone, Debug)] pub enum FileSearchLocation { Inbox, Archive, } impl FileSearchLocation { pub fn is_inbox(&self) -> bool { if let &Self::Inbox = &self { true } else { false } } pub fn is_archive(&self) -> bool { if let &Self::Archive = &self { true } else { false } } } pub struct SearchFiles; impl Endpoint for SearchFiles { type Request = (); type Response = SearchFilesResponse; fn path() -> String { String::from("get_files/search_files") } } #[derive(Clone, Debug, Default, Deserialize)] pub struct FileMetadataResponse { pub metadata: Vec<FileMetadataInfo>, } pub struct FileMetadata; impl Endpoint for FileMetadata { type Request = (); type Response = FileMetadataResponse; fn path() -> String { String::from("get_files/file_metadata") } } pub struct GetFile; impl Endpoint for GetFile { type Request = (); type Response = (); fn path() -> String { String::from("get_files/file") } }