text_document_direct_access/resource/
dtos.rs1use common::entities::Resource;
4pub use common::entities::ResourceType;
5use common::types::EntityId;
6use serde::{Deserialize, Serialize};
7use std::convert::From;
8
9#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10pub struct ResourceDto {
11 pub id: EntityId,
12 pub created_at: chrono::DateTime<chrono::Utc>,
13 pub updated_at: chrono::DateTime<chrono::Utc>,
14 pub resource_type: ResourceType,
15 pub name: String,
16 pub url: String,
17 pub mime_type: String,
18 pub data_base64: String,
19}
20
21impl From<ResourceDto> for Resource {
22 fn from(dto: ResourceDto) -> Self {
23 Resource {
24 id: dto.id,
25 created_at: dto.created_at,
26 updated_at: dto.updated_at,
27 resource_type: dto.resource_type,
28 name: dto.name,
29 url: dto.url,
30 mime_type: dto.mime_type,
31 data_base64: dto.data_base64,
32 }
33 }
34}
35
36impl From<&ResourceDto> for Resource {
37 fn from(dto: &ResourceDto) -> Self {
38 Resource {
39 id: dto.id,
40 created_at: dto.created_at,
41 updated_at: dto.updated_at,
42 resource_type: dto.resource_type.clone(),
43 name: dto.name.clone(),
44 url: dto.url.clone(),
45 mime_type: dto.mime_type.clone(),
46 data_base64: dto.data_base64.clone(),
47 }
48 }
49}
50
51impl From<Resource> for ResourceDto {
52 fn from(entity: Resource) -> Self {
53 ResourceDto {
54 id: entity.id,
55 created_at: entity.created_at,
56 updated_at: entity.updated_at,
57 resource_type: entity.resource_type,
58 name: entity.name,
59 url: entity.url,
60 mime_type: entity.mime_type,
61 data_base64: entity.data_base64,
62 }
63 }
64}
65
66#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
67pub struct CreateResourceDto {
68 pub created_at: chrono::DateTime<chrono::Utc>,
69 pub updated_at: chrono::DateTime<chrono::Utc>,
70 pub resource_type: ResourceType,
71 pub name: String,
72 pub url: String,
73 pub mime_type: String,
74 pub data_base64: String,
75}
76
77impl From<CreateResourceDto> for Resource {
78 fn from(dto: CreateResourceDto) -> Self {
79 Resource {
80 id: 0,
81 created_at: dto.created_at,
82 updated_at: dto.updated_at,
83 resource_type: dto.resource_type,
84 name: dto.name,
85 url: dto.url,
86 mime_type: dto.mime_type,
87 data_base64: dto.data_base64,
88 }
89 }
90}
91
92impl From<&CreateResourceDto> for Resource {
93 fn from(dto: &CreateResourceDto) -> Self {
94 Resource {
95 id: 0,
96 created_at: dto.created_at,
97 updated_at: dto.updated_at,
98 resource_type: dto.resource_type.clone(),
99 name: dto.name.clone(),
100 url: dto.url.clone(),
101 mime_type: dto.mime_type.clone(),
102 data_base64: dto.data_base64.clone(),
103 }
104 }
105}
106
107impl From<Resource> for CreateResourceDto {
108 fn from(entity: Resource) -> Self {
109 CreateResourceDto {
110 created_at: entity.created_at,
111 updated_at: entity.updated_at,
112 resource_type: entity.resource_type,
113 name: entity.name,
114 url: entity.url,
115 mime_type: entity.mime_type,
116 data_base64: entity.data_base64,
117 }
118 }
119}
120
121#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
122pub struct UpdateResourceDto {
123 pub id: EntityId,
124 pub created_at: chrono::DateTime<chrono::Utc>,
125 pub updated_at: chrono::DateTime<chrono::Utc>,
126 pub resource_type: ResourceType,
127 pub name: String,
128 pub url: String,
129 pub mime_type: String,
130 pub data_base64: String,
131}
132
133impl From<UpdateResourceDto> for Resource {
134 fn from(dto: UpdateResourceDto) -> Self {
135 Resource {
136 id: dto.id,
137 created_at: dto.created_at,
138 updated_at: dto.updated_at,
139 resource_type: dto.resource_type,
140 name: dto.name,
141 url: dto.url,
142 mime_type: dto.mime_type,
143 data_base64: dto.data_base64,
144 }
145 }
146}
147
148impl From<&UpdateResourceDto> for Resource {
149 fn from(dto: &UpdateResourceDto) -> Self {
150 Resource {
151 id: dto.id,
152 created_at: dto.created_at,
153 updated_at: dto.updated_at,
154 resource_type: dto.resource_type.clone(),
155 name: dto.name.clone(),
156 url: dto.url.clone(),
157 mime_type: dto.mime_type.clone(),
158 data_base64: dto.data_base64.clone(),
159 }
160 }
161}
162
163impl From<Resource> for UpdateResourceDto {
164 fn from(entity: Resource) -> Self {
165 UpdateResourceDto {
166 id: entity.id,
167 created_at: entity.created_at,
168 updated_at: entity.updated_at,
169 resource_type: entity.resource_type,
170 name: entity.name,
171 url: entity.url,
172 mime_type: entity.mime_type,
173 data_base64: entity.data_base64,
174 }
175 }
176}
177
178impl From<ResourceDto> for UpdateResourceDto {
179 fn from(dto: ResourceDto) -> Self {
180 UpdateResourceDto {
181 id: dto.id,
182 created_at: dto.created_at,
183 updated_at: dto.updated_at,
184 resource_type: dto.resource_type,
185 name: dto.name,
186 url: dto.url,
187 mime_type: dto.mime_type,
188 data_base64: dto.data_base64,
189 }
190 }
191}