rs_uptobox/model/
get_files.rs

1use 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/// Response
14#[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/// Data of GetFilesResponse
26#[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/// Data of GetFilesResponse
42#[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/// Data of GetFilesResponse
51#[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}