botx_api/api/v3/files/download_file/
models.rs1use serde::{Serialize, Deserialize};
2use uuid::Uuid;
3
4use crate::api::models::*;
5
6#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
7#[builder(setter(into, prefix = "with", strip_option))]
8pub struct DownloadFileRequest {
9 pub group_chat_id: Uuid,
11
12 pub file_id: Uuid,
14
15 pub is_preview: bool,
17}
18
19#[derive(Debug, Serialize, Deserialize, Clone)]
21#[serde(tag = "reason")]
22pub enum DownloadFileError {
23 #[serde(rename(serialize = "chat_not_found", deserialize = "chat_not_found"))]
25 ChatNotFound(ChatNotFound),
26
27 #[serde(rename(serialize = "error_from_messaging_service", deserialize = "error_from_messaging_service"))]
29 ErrorFromMessagingService(ErrorFromMessagingService),
30
31 #[serde(rename(serialize = "file_metadata_not_found", deserialize = "file_metadata_not_found"))]
33 FileMetadataNotFound(FileMetadataNotFound),
34
35 #[serde(rename(serialize = "error_from_file_service", deserialize = "error_from_file_service"))]
37 ErrorFromFileService(ErrorFromFileService),
38
39 #[serde(rename(serialize = "file_deleted", deserialize = "file_deleted"))]
41 FileDeleted(FileDeleted),
42
43 #[serde(rename(serialize = "file_download_failed", deserialize = "file_download_failed"))]
45 FileDownloadFailed(FileDownloadFailed),
46
47 #[serde(rename(serialize = "error_from_s3_file_service", deserialize = "error_from_s3_file_service"))]
49 ErrorFromS3FileService(ErrorFromS3FileService),
50
51 #[serde(rename(serialize = "file_without_preview", deserialize = "file_without_preview"))]
53 FileWithoutPreview(FileWithoutPreview),
54
55 #[serde(other)]
58 Other,
59}
60
61#[derive(Debug, Serialize, Deserialize, Clone)]
63pub struct FileMetadataNotFound {
64 pub errors: Vec<String>,
66
67 pub error_data: FileMetadataNotFoundData,
69}
70
71#[derive(Debug, Serialize, Deserialize, Clone)]
72pub struct FileMetadataNotFoundData {
73 pub file_id: Uuid,
75
76 pub group_chat_id: Uuid,
78
79 pub error_description: String,
81}
82
83#[derive(Debug, Serialize, Deserialize, Clone)]
85pub struct ErrorFromFileService {
86 pub errors: Vec<String>,
88
89 pub error_data: ErrorFromFileServiceData,
91}
92
93#[derive(Debug, Serialize, Deserialize, Clone)]
94pub struct ErrorFromFileServiceData {
95 pub file_id: Uuid,
97
98 pub group_chat_id: Uuid,
100
101 pub reason: String,
103
104 pub error_description: String,
106}
107
108#[derive(Debug, Serialize, Deserialize, Clone)]
110pub struct FileDeleted {
111 pub errors: Vec<String>,
113
114 pub error_data: FileDeletedData,
116}
117
118#[derive(Debug, Serialize, Deserialize, Clone)]
119pub struct FileDeletedData {
120 pub link: String,
122
123 pub error_description: String,
125}
126
127#[derive(Debug, Serialize, Deserialize, Clone)]
129pub struct FileDownloadFailed {
130 pub errors: Vec<String>,
132
133 pub error_data: FileDownloadFailedData,
135}
136
137#[derive(Debug, Serialize, Deserialize, Clone)]
138pub struct FileDownloadFailedData {
139 pub link: String,
141
142 pub error_description: String,
144}
145
146#[derive(Debug, Serialize, Deserialize, Clone)]
148pub struct ErrorFromS3FileService {
149 pub errors: Vec<String>,
151
152 pub error_data: ErrorFromS3FileServiceData,
154}
155
156#[derive(Debug, Serialize, Deserialize, Clone)]
157pub struct ErrorFromS3FileServiceData {
158 pub source_link: String,
160
161 pub location: String,
163
164 pub error_description: String,
166}
167
168#[derive(Debug, Serialize, Deserialize, Clone)]
170pub struct FileWithoutPreview {
171 pub errors: Vec<String>,
173
174 pub error_data: FileWithoutPreviewData,
176}
177
178#[derive(Debug, Serialize, Deserialize, Clone)]
179pub struct FileWithoutPreviewData {
180 pub file_id: Uuid,
182
183 pub group_chat_id: Uuid,
185
186 pub error_description: String,
188}