rs_uptobox/model/
get_files.rs1use serde::Deserialize;
2
3use crate::util::DeserializeCheck;
4
5#[derive(Deserialize, Debug)]
6#[serde(rename_all = "camelCase")]
7pub(crate) struct GetFilesResponseWrapper {
8 pub status_code: usize,
9 pub data: GetFilesResponse,
10 pub message: Option<String>,
11}
12
13#[derive(Deserialize, Debug)]
15#[serde(rename_all = "camelCase")]
16pub struct GetFilesResponse {
17 pub current_folder: GetFilesCurrentFolder,
18 pub folders: Vec<GetFilesFolders>,
19 pub files: Vec<GetFilesFiles>,
20 pub page_count: usize,
21 pub total_file_count: usize,
22 pub total_file_size: usize,
23}
24
25#[derive(Deserialize, Debug)]
27pub struct GetFilesCurrentFolder {
28 #[serde(rename = "fileCount")]
29 pub file_count: usize,
30 pub fld_id: usize,
31 #[serde(default = "default_string")]
32 pub fld_name: String,
33 pub fld_parent_id: Option<usize>,
34 pub hash: String,
35 #[serde(default = "default_string")]
36 pub name: String,
37 #[serde(rename = "totalFileSize")]
38 pub total_file_size: usize,
39}
40
41#[derive(Deserialize, Debug)]
43pub struct GetFilesFolders {
44 pub fld_id: usize,
45 pub fld_name: String,
46 pub hash: String,
47 pub name: String,
48}
49
50#[derive(Deserialize, Debug)]
52pub struct GetFilesFiles {
53 pub file_code: String,
54 pub file_created: String,
55 pub file_descr: String,
56 pub file_downloads: usize,
57 pub file_last_download: String,
58 pub file_name: String,
59 pub file_password: String,
60 pub file_public: usize,
61 pub file_size: usize,
62 pub id: Option<usize>,
63 pub last_stream: String,
64 pub nb_stream: usize,
65 pub transcoded: Option<usize>,
66}
67
68fn default_string() -> String {
69 "//".to_string()
70}
71
72impl DeserializeCheck for GetFilesResponseWrapper {
73 fn status_code(&self) -> usize {
74 self.status_code
75 }
76}