1use reqwest::header::ACCEPT;
2use secrecy::{ExposeSecret, SecretString};
3use serde::{Deserialize, Serialize};
4use serde_json::Number;
5
6use super::{ClientError, WekanClient};
7use crate::client::transport::decode_success;
8
9#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
11#[serde(
12 deny_unknown_fields,
13 rename_all(deserialize = "camelCase", serialize = "snake_case")
14)]
15pub struct BoardCardSettings {
16 #[serde(default, deserialize_with = "optional")]
17 pub allows_swimlane_dragging: Option<bool>,
18 #[serde(default, deserialize_with = "optional")]
19 pub allows_list_dragging: Option<bool>,
20 #[serde(default, deserialize_with = "optional")]
21 pub allows_card_dragging: Option<bool>,
22 #[serde(default, deserialize_with = "optional")]
23 pub allows_checklist_dragging: Option<bool>,
24 #[serde(default, deserialize_with = "optional")]
25 pub allows_checklist_item_dragging: Option<bool>,
26 #[serde(default, deserialize_with = "optional")]
27 pub allows_subtask_dragging: Option<bool>,
28 #[serde(default, deserialize_with = "optional")]
29 pub allows_minicard_collapse: Option<bool>,
30 #[serde(default, deserialize_with = "optional")]
31 pub labels_above_title_on_minicard: Option<bool>,
32 #[serde(default, deserialize_with = "optional")]
33 pub allows_checklist_due_date: Option<bool>,
34 #[serde(default, deserialize_with = "optional")]
35 pub allows_checklist_title: Option<bool>,
36 #[serde(default, deserialize_with = "optional")]
37 pub ask_for_move_reason: Option<bool>,
38 #[serde(default, deserialize_with = "optional")]
39 pub allows_comments_on_minicard: Option<bool>,
40 #[serde(default, deserialize_with = "optional")]
41 pub allows_spent_time: Option<bool>,
42 #[serde(default, deserialize_with = "optional")]
43 pub allows_spent_time_on_minicard: Option<bool>,
44 #[serde(default, deserialize_with = "optional")]
45 pub allows_swimlane_name_on_minicard: Option<bool>,
46 #[serde(default, deserialize_with = "optional")]
47 pub show_label_text: Option<bool>,
48 #[serde(default, deserialize_with = "optional")]
49 pub allows_stickers: Option<bool>,
50 #[serde(default, deserialize_with = "optional")]
51 pub allows_stickers_on_minicard: Option<bool>,
52 #[serde(default, deserialize_with = "optional")]
53 pub allows_location: Option<bool>,
54 #[serde(default, deserialize_with = "optional")]
55 pub allows_dependencies: Option<bool>,
56 #[serde(default, deserialize_with = "optional")]
57 pub allows_dependencies_on_minicard: Option<bool>,
58 #[serde(default, deserialize_with = "optional")]
59 pub allows_flowtime: Option<bool>,
60 #[serde(default, deserialize_with = "optional")]
61 pub allows_pomodoro: Option<bool>,
62 #[serde(default, deserialize_with = "optional")]
63 pub allows_vote: Option<bool>,
64 #[serde(default, deserialize_with = "optional")]
65 pub allows_vote_on_minicard: Option<bool>,
66 #[serde(default, deserialize_with = "optional")]
67 pub allows_poker: Option<bool>,
68 #[serde(default, deserialize_with = "optional")]
69 pub allows_poker_on_minicard: Option<bool>,
70 #[serde(default, deserialize_with = "optional")]
71 pub allows_text_notes: Option<bool>,
72 #[serde(default, deserialize_with = "optional")]
73 pub allows_comment_count_on_minicard: Option<bool>,
74 #[serde(default, deserialize_with = "optional")]
75 pub allows_issue_type_on_minicard: Option<bool>,
76 #[serde(default, deserialize_with = "optional")]
77 pub allows_card_color_on_card: Option<bool>,
78 #[serde(default, deserialize_with = "optional")]
79 pub allows_card_color_on_minicard: Option<bool>,
80 #[serde(default, deserialize_with = "optional")]
81 pub allows_parent_card_on_card: Option<bool>,
82 #[serde(default, deserialize_with = "optional")]
83 pub allows_parent_card_on_minicard: Option<bool>,
84 #[serde(default, deserialize_with = "optional")]
85 pub allows_linked_card_on_card: Option<bool>,
86 #[serde(default, deserialize_with = "optional")]
87 pub allows_linked_card_on_minicard: Option<bool>,
88 #[serde(default, deserialize_with = "optional")]
89 pub allows_card_buttons_on_card: Option<bool>,
90 #[serde(default, deserialize_with = "optional")]
91 pub allows_description_badge_on_minicard: Option<bool>,
92 #[serde(default, deserialize_with = "optional")]
93 pub allows_unread_comments_on_minicard: Option<bool>,
94 #[serde(default, deserialize_with = "optional")]
95 pub allows_card_collapse: Option<bool>,
96 #[serde(default, deserialize_with = "optional")]
97 pub allows_checklist_title_on_minicard: Option<bool>,
98 #[serde(default, deserialize_with = "optional")]
99 pub allows_label_text_on_card: Option<bool>,
100 #[serde(default, deserialize_with = "optional")]
101 pub allows_card_counter_list: Option<bool>,
102 #[serde(default, deserialize_with = "optional")]
103 pub card_aging: Option<bool>,
104 #[serde(default, deserialize_with = "optional")]
105 pub allows_board_member_list: Option<bool>,
106 #[serde(default, deserialize_with = "optional")]
107 pub allows_show_lists: Option<bool>,
108 #[serde(default, deserialize_with = "optional")]
109 pub allows_attachments: Option<bool>,
110 #[serde(default, deserialize_with = "optional")]
111 pub allows_checklists: Option<bool>,
112 #[serde(default, deserialize_with = "optional")]
113 pub allows_comments: Option<bool>,
114 #[serde(default, deserialize_with = "optional")]
115 pub allows_description_title: Option<bool>,
116 #[serde(default, deserialize_with = "optional")]
117 pub allows_description_text: Option<bool>,
118 #[serde(default, deserialize_with = "optional")]
119 pub allows_activities: Option<bool>,
120 #[serde(default, deserialize_with = "optional")]
121 pub allows_labels: Option<bool>,
122 #[serde(default, deserialize_with = "optional")]
123 pub allows_creator: Option<bool>,
124 #[serde(default, deserialize_with = "optional")]
125 pub allows_assignee: Option<bool>,
126 #[serde(default, deserialize_with = "optional")]
127 pub allows_members: Option<bool>,
128 #[serde(default, deserialize_with = "optional")]
129 pub allows_requested_by: Option<bool>,
130 #[serde(default, deserialize_with = "optional")]
131 pub allows_card_sorting_by_number: Option<bool>,
132 #[serde(default, deserialize_with = "optional")]
133 pub allows_card_number: Option<bool>,
134 #[serde(default, deserialize_with = "optional")]
135 pub allows_assigned_by: Option<bool>,
136 #[serde(default, deserialize_with = "optional")]
137 pub allows_received_date: Option<bool>,
138 #[serde(default, deserialize_with = "optional")]
139 pub allows_start_date: Option<bool>,
140 #[serde(default, deserialize_with = "optional")]
141 pub allows_end_date: Option<bool>,
142 #[serde(default, deserialize_with = "optional")]
143 pub allows_due_date: Option<bool>,
144 #[serde(default, deserialize_with = "optional")]
145 pub allows_subtasks: Option<bool>,
146 #[serde(default, deserialize_with = "optional")]
147 pub allows_creator_on_minicard: Option<bool>,
148 #[serde(default, deserialize_with = "optional")]
149 pub allows_attachments_on_minicard: Option<bool>,
150 #[serde(default, deserialize_with = "optional")]
151 pub allows_checklists_on_minicard: Option<bool>,
152 #[serde(default, deserialize_with = "optional")]
153 pub allows_checklist_at_minicard: Option<bool>,
154 #[serde(default, deserialize_with = "optional")]
155 pub allows_cover_attachment_on_minicard: Option<bool>,
156 #[serde(default, deserialize_with = "optional")]
157 pub allows_badge_attachment_on_minicard: Option<bool>,
158 #[serde(default, deserialize_with = "optional")]
159 pub allows_card_sorting_by_number_on_minicard: Option<bool>,
160 #[serde(default, deserialize_with = "optional")]
161 pub allows_card_number_on_minicard: Option<bool>,
162 #[serde(default, deserialize_with = "optional")]
163 pub allows_description_title_on_minicard: Option<bool>,
164 #[serde(default, deserialize_with = "optional")]
165 pub allows_description_text_on_minicard: Option<bool>,
166 #[serde(default, deserialize_with = "optional")]
167 pub allows_labels_on_minicard: Option<bool>,
168 #[serde(default, deserialize_with = "optional")]
169 pub allows_assignee_on_minicard: Option<bool>,
170 #[serde(default, deserialize_with = "optional")]
171 pub allows_members_on_minicard: Option<bool>,
172 #[serde(default, deserialize_with = "optional")]
173 pub allows_requested_by_on_minicard: Option<bool>,
174 #[serde(default, deserialize_with = "optional")]
175 pub allows_assigned_by_on_minicard: Option<bool>,
176 #[serde(default, deserialize_with = "optional")]
177 pub allows_received_date_on_minicard: Option<bool>,
178 #[serde(default, deserialize_with = "optional")]
179 pub allows_start_date_on_minicard: Option<bool>,
180 #[serde(default, deserialize_with = "optional")]
181 pub allows_end_date_on_minicard: Option<bool>,
182 #[serde(default, deserialize_with = "optional")]
183 pub allows_due_date_on_minicard: Option<bool>,
184 #[serde(default, deserialize_with = "optional")]
185 pub allows_subtasks_on_minicard: Option<bool>,
186 #[serde(default, deserialize_with = "optional")]
187 pub allows_show_lists_on_minicard: Option<bool>,
188 #[serde(default, deserialize_with = "optional")]
189 pub card_aging_days1: Option<Number>,
190 #[serde(default, deserialize_with = "optional")]
191 pub card_aging_days2: Option<Number>,
192 #[serde(default, deserialize_with = "optional")]
193 pub card_aging_days3: Option<Number>,
194 #[serde(default, deserialize_with = "optional")]
195 pub allows_card_buttons_on_minicard: Option<bool>,
196 #[serde(default, deserialize_with = "optional")]
197 pub allows_description_badge_on_card: Option<bool>,
198 #[serde(default, deserialize_with = "optional")]
199 pub allows_unread_comments_on_card: Option<bool>,
200 #[serde(default, deserialize_with = "optional")]
201 pub allows_due_from_title_on_card: Option<bool>,
202 #[serde(default, deserialize_with = "optional")]
203 pub allows_due_from_title_on_minicard: Option<bool>,
204 #[serde(default, deserialize_with = "optional")]
205 pub allows_similar_cards_on_card: Option<bool>,
206 #[serde(default, deserialize_with = "optional")]
207 pub allows_similar_cards_on_minicard: Option<bool>,
208 #[serde(default, deserialize_with = "optional")]
209 pub allows_at_risk_on_card: Option<bool>,
210 #[serde(default, deserialize_with = "optional")]
211 pub allows_at_risk_on_minicard: Option<bool>,
212 #[serde(default, deserialize_with = "optional")]
213 pub allows_suggested_members_on_card: Option<bool>,
214 #[serde(default, deserialize_with = "optional")]
215 pub allows_forecast_on_card: Option<bool>,
216 #[serde(default, deserialize_with = "optional")]
217 pub allows_forecast_on_minicard: Option<bool>,
218 #[serde(default, deserialize_with = "optional")]
219 pub allows_checklist_from_description_on_card: Option<bool>,
220 #[serde(default, deserialize_with = "optional")]
221 pub allows_action_items_on_card: Option<bool>,
222 #[serde(default, deserialize_with = "optional")]
223 pub allows_whiteboard_on_card: Option<bool>,
224 #[serde(default, deserialize_with = "optional")]
225 pub labels_above_title_on_card: Option<bool>,
226 #[serde(default, deserialize_with = "optional")]
227 pub allows_checklist_due_date_on_minicard: Option<bool>,
228 #[serde(default, deserialize_with = "optional")]
229 pub allows_location_on_minicard: Option<bool>,
230 #[serde(default, deserialize_with = "optional")]
231 pub allows_swimlane_name_on_card: Option<bool>,
232 #[serde(default, deserialize_with = "optional")]
233 pub allows_flowtime_on_minicard: Option<bool>,
234 #[serde(default, deserialize_with = "optional")]
235 pub allows_pomodoro_on_minicard: Option<bool>,
236 #[serde(default, deserialize_with = "optional")]
237 pub allows_attachment_list_on_minicard: Option<bool>,
238 #[serde(default, deserialize_with = "optional")]
239 pub allows_text_notes_on_minicard: Option<bool>,
240 #[serde(default, deserialize_with = "optional")]
241 pub allows_comment_count_on_card: Option<bool>,
242 #[serde(default, deserialize_with = "optional")]
243 pub allows_activities_on_minicard: Option<bool>,
244}
245
246fn optional<'de, D: serde::Deserializer<'de>, T: Deserialize<'de>>(
247 d: D,
248) -> Result<Option<T>, D::Error> {
249 T::deserialize(d).map(Some)
250}
251
252#[derive(Clone, Debug, Default, Eq, PartialEq, Serialize)]
254#[serde(rename_all = "camelCase")]
255pub struct UpdateBoardCardSettingsRequest {
256 #[serde(skip_serializing_if = "Option::is_none")]
257 pub allows_swimlane_dragging: Option<bool>,
258 #[serde(skip_serializing_if = "Option::is_none")]
259 pub allows_list_dragging: Option<bool>,
260 #[serde(skip_serializing_if = "Option::is_none")]
261 pub allows_card_dragging: Option<bool>,
262 #[serde(skip_serializing_if = "Option::is_none")]
263 pub allows_checklist_dragging: Option<bool>,
264 #[serde(skip_serializing_if = "Option::is_none")]
265 pub allows_checklist_item_dragging: Option<bool>,
266 #[serde(skip_serializing_if = "Option::is_none")]
267 pub allows_subtask_dragging: Option<bool>,
268 #[serde(skip_serializing_if = "Option::is_none")]
269 pub allows_minicard_collapse: Option<bool>,
270 #[serde(skip_serializing_if = "Option::is_none")]
271 pub labels_above_title_on_minicard: Option<bool>,
272 #[serde(skip_serializing_if = "Option::is_none")]
273 pub allows_checklist_due_date: Option<bool>,
274 #[serde(skip_serializing_if = "Option::is_none")]
275 pub allows_checklist_title: Option<bool>,
276 #[serde(skip_serializing_if = "Option::is_none")]
277 pub ask_for_move_reason: Option<bool>,
278 #[serde(skip_serializing_if = "Option::is_none")]
279 pub allows_comments_on_minicard: Option<bool>,
280 #[serde(skip_serializing_if = "Option::is_none")]
281 pub allows_spent_time: Option<bool>,
282 #[serde(skip_serializing_if = "Option::is_none")]
283 pub allows_spent_time_on_minicard: Option<bool>,
284 #[serde(skip_serializing_if = "Option::is_none")]
285 pub allows_swimlane_name_on_minicard: Option<bool>,
286 #[serde(skip_serializing_if = "Option::is_none")]
287 pub show_label_text: Option<bool>,
288 #[serde(skip_serializing_if = "Option::is_none")]
289 pub allows_stickers: Option<bool>,
290 #[serde(skip_serializing_if = "Option::is_none")]
291 pub allows_stickers_on_minicard: Option<bool>,
292 #[serde(skip_serializing_if = "Option::is_none")]
293 pub allows_location: Option<bool>,
294 #[serde(skip_serializing_if = "Option::is_none")]
295 pub allows_dependencies: Option<bool>,
296 #[serde(skip_serializing_if = "Option::is_none")]
297 pub allows_dependencies_on_minicard: Option<bool>,
298 #[serde(skip_serializing_if = "Option::is_none")]
299 pub allows_flowtime: Option<bool>,
300 #[serde(skip_serializing_if = "Option::is_none")]
301 pub allows_pomodoro: Option<bool>,
302 #[serde(skip_serializing_if = "Option::is_none")]
303 pub allows_vote: Option<bool>,
304 #[serde(skip_serializing_if = "Option::is_none")]
305 pub allows_vote_on_minicard: Option<bool>,
306 #[serde(skip_serializing_if = "Option::is_none")]
307 pub allows_poker: Option<bool>,
308 #[serde(skip_serializing_if = "Option::is_none")]
309 pub allows_poker_on_minicard: Option<bool>,
310 #[serde(skip_serializing_if = "Option::is_none")]
311 pub allows_text_notes: Option<bool>,
312 #[serde(skip_serializing_if = "Option::is_none")]
313 pub allows_comment_count_on_minicard: Option<bool>,
314 #[serde(skip_serializing_if = "Option::is_none")]
315 pub allows_issue_type_on_minicard: Option<bool>,
316 #[serde(skip_serializing_if = "Option::is_none")]
317 pub allows_card_color_on_card: Option<bool>,
318 #[serde(skip_serializing_if = "Option::is_none")]
319 pub allows_card_color_on_minicard: Option<bool>,
320 #[serde(skip_serializing_if = "Option::is_none")]
321 pub allows_parent_card_on_card: Option<bool>,
322 #[serde(skip_serializing_if = "Option::is_none")]
323 pub allows_parent_card_on_minicard: Option<bool>,
324 #[serde(skip_serializing_if = "Option::is_none")]
325 pub allows_linked_card_on_card: Option<bool>,
326 #[serde(skip_serializing_if = "Option::is_none")]
327 pub allows_linked_card_on_minicard: Option<bool>,
328 #[serde(skip_serializing_if = "Option::is_none")]
329 pub allows_card_buttons_on_card: Option<bool>,
330 #[serde(skip_serializing_if = "Option::is_none")]
331 pub allows_description_badge_on_minicard: Option<bool>,
332 #[serde(skip_serializing_if = "Option::is_none")]
333 pub allows_unread_comments_on_minicard: Option<bool>,
334 #[serde(skip_serializing_if = "Option::is_none")]
335 pub allows_card_collapse: Option<bool>,
336 #[serde(skip_serializing_if = "Option::is_none")]
337 pub allows_checklist_title_on_minicard: Option<bool>,
338 #[serde(skip_serializing_if = "Option::is_none")]
339 pub allows_label_text_on_card: Option<bool>,
340 #[serde(skip_serializing_if = "Option::is_none")]
341 pub allows_card_counter_list: Option<bool>,
342 #[serde(skip_serializing_if = "Option::is_none")]
343 pub card_aging: Option<bool>,
344 #[serde(skip_serializing_if = "Option::is_none")]
345 pub allows_board_member_list: Option<bool>,
346 #[serde(skip_serializing_if = "Option::is_none")]
347 pub allows_show_lists: Option<bool>,
348 #[serde(skip_serializing_if = "Option::is_none")]
349 pub allows_attachments: Option<bool>,
350 #[serde(skip_serializing_if = "Option::is_none")]
351 pub allows_checklists: Option<bool>,
352 #[serde(skip_serializing_if = "Option::is_none")]
353 pub allows_comments: Option<bool>,
354 #[serde(skip_serializing_if = "Option::is_none")]
355 pub allows_description_title: Option<bool>,
356 #[serde(skip_serializing_if = "Option::is_none")]
357 pub allows_description_text: Option<bool>,
358 #[serde(skip_serializing_if = "Option::is_none")]
359 pub allows_activities: Option<bool>,
360 #[serde(skip_serializing_if = "Option::is_none")]
361 pub allows_labels: Option<bool>,
362 #[serde(skip_serializing_if = "Option::is_none")]
363 pub allows_creator: Option<bool>,
364 #[serde(skip_serializing_if = "Option::is_none")]
365 pub allows_assignee: Option<bool>,
366 #[serde(skip_serializing_if = "Option::is_none")]
367 pub allows_members: Option<bool>,
368 #[serde(skip_serializing_if = "Option::is_none")]
369 pub allows_requested_by: Option<bool>,
370 #[serde(skip_serializing_if = "Option::is_none")]
371 pub allows_card_sorting_by_number: Option<bool>,
372 #[serde(skip_serializing_if = "Option::is_none")]
373 pub allows_card_number: Option<bool>,
374 #[serde(skip_serializing_if = "Option::is_none")]
375 pub allows_assigned_by: Option<bool>,
376 #[serde(skip_serializing_if = "Option::is_none")]
377 pub allows_received_date: Option<bool>,
378 #[serde(skip_serializing_if = "Option::is_none")]
379 pub allows_start_date: Option<bool>,
380 #[serde(skip_serializing_if = "Option::is_none")]
381 pub allows_end_date: Option<bool>,
382 #[serde(skip_serializing_if = "Option::is_none")]
383 pub allows_due_date: Option<bool>,
384 #[serde(skip_serializing_if = "Option::is_none")]
385 pub allows_subtasks: Option<bool>,
386 #[serde(skip_serializing_if = "Option::is_none")]
387 pub allows_creator_on_minicard: Option<bool>,
388 #[serde(skip_serializing_if = "Option::is_none")]
389 pub allows_attachments_on_minicard: Option<bool>,
390 #[serde(skip_serializing_if = "Option::is_none")]
391 pub allows_checklists_on_minicard: Option<bool>,
392 #[serde(skip_serializing_if = "Option::is_none")]
393 pub allows_checklist_at_minicard: Option<bool>,
394 #[serde(skip_serializing_if = "Option::is_none")]
395 pub allows_cover_attachment_on_minicard: Option<bool>,
396 #[serde(skip_serializing_if = "Option::is_none")]
397 pub allows_badge_attachment_on_minicard: Option<bool>,
398 #[serde(skip_serializing_if = "Option::is_none")]
399 pub allows_card_sorting_by_number_on_minicard: Option<bool>,
400 #[serde(skip_serializing_if = "Option::is_none")]
401 pub allows_card_number_on_minicard: Option<bool>,
402 #[serde(skip_serializing_if = "Option::is_none")]
403 pub allows_description_title_on_minicard: Option<bool>,
404 #[serde(skip_serializing_if = "Option::is_none")]
405 pub allows_description_text_on_minicard: Option<bool>,
406 #[serde(skip_serializing_if = "Option::is_none")]
407 pub allows_labels_on_minicard: Option<bool>,
408 #[serde(skip_serializing_if = "Option::is_none")]
409 pub allows_assignee_on_minicard: Option<bool>,
410 #[serde(skip_serializing_if = "Option::is_none")]
411 pub allows_members_on_minicard: Option<bool>,
412 #[serde(skip_serializing_if = "Option::is_none")]
413 pub allows_requested_by_on_minicard: Option<bool>,
414 #[serde(skip_serializing_if = "Option::is_none")]
415 pub allows_assigned_by_on_minicard: Option<bool>,
416 #[serde(skip_serializing_if = "Option::is_none")]
417 pub allows_received_date_on_minicard: Option<bool>,
418 #[serde(skip_serializing_if = "Option::is_none")]
419 pub allows_start_date_on_minicard: Option<bool>,
420 #[serde(skip_serializing_if = "Option::is_none")]
421 pub allows_end_date_on_minicard: Option<bool>,
422 #[serde(skip_serializing_if = "Option::is_none")]
423 pub allows_due_date_on_minicard: Option<bool>,
424 #[serde(skip_serializing_if = "Option::is_none")]
425 pub allows_subtasks_on_minicard: Option<bool>,
426 #[serde(skip_serializing_if = "Option::is_none")]
427 pub allows_show_lists_on_minicard: Option<bool>,
428 #[serde(skip_serializing_if = "Option::is_none")]
429 pub card_aging_days1: Option<u64>,
430 #[serde(skip_serializing_if = "Option::is_none")]
431 pub card_aging_days2: Option<u64>,
432 #[serde(skip_serializing_if = "Option::is_none")]
433 pub card_aging_days3: Option<u64>,
434 #[serde(skip_serializing_if = "Option::is_none")]
435 pub allows_card_buttons_on_minicard: Option<bool>,
436 #[serde(skip_serializing_if = "Option::is_none")]
437 pub allows_description_badge_on_card: Option<bool>,
438 #[serde(skip_serializing_if = "Option::is_none")]
439 pub allows_unread_comments_on_card: Option<bool>,
440 #[serde(skip_serializing_if = "Option::is_none")]
441 pub allows_due_from_title_on_card: Option<bool>,
442 #[serde(skip_serializing_if = "Option::is_none")]
443 pub allows_due_from_title_on_minicard: Option<bool>,
444 #[serde(skip_serializing_if = "Option::is_none")]
445 pub allows_similar_cards_on_card: Option<bool>,
446 #[serde(skip_serializing_if = "Option::is_none")]
447 pub allows_similar_cards_on_minicard: Option<bool>,
448 #[serde(skip_serializing_if = "Option::is_none")]
449 pub allows_at_risk_on_card: Option<bool>,
450 #[serde(skip_serializing_if = "Option::is_none")]
451 pub allows_at_risk_on_minicard: Option<bool>,
452 #[serde(skip_serializing_if = "Option::is_none")]
453 pub allows_suggested_members_on_card: Option<bool>,
454 #[serde(skip_serializing_if = "Option::is_none")]
455 pub allows_forecast_on_card: Option<bool>,
456 #[serde(skip_serializing_if = "Option::is_none")]
457 pub allows_forecast_on_minicard: Option<bool>,
458 #[serde(skip_serializing_if = "Option::is_none")]
459 pub allows_checklist_from_description_on_card: Option<bool>,
460 #[serde(skip_serializing_if = "Option::is_none")]
461 pub allows_action_items_on_card: Option<bool>,
462 #[serde(skip_serializing_if = "Option::is_none")]
463 pub allows_whiteboard_on_card: Option<bool>,
464 #[serde(skip_serializing_if = "Option::is_none")]
465 pub labels_above_title_on_card: Option<bool>,
466 #[serde(skip_serializing_if = "Option::is_none")]
467 pub allows_checklist_due_date_on_minicard: Option<bool>,
468 #[serde(skip_serializing_if = "Option::is_none")]
469 pub allows_location_on_minicard: Option<bool>,
470 #[serde(skip_serializing_if = "Option::is_none")]
471 pub allows_swimlane_name_on_card: Option<bool>,
472 #[serde(skip_serializing_if = "Option::is_none")]
473 pub allows_flowtime_on_minicard: Option<bool>,
474 #[serde(skip_serializing_if = "Option::is_none")]
475 pub allows_pomodoro_on_minicard: Option<bool>,
476 #[serde(skip_serializing_if = "Option::is_none")]
477 pub allows_attachment_list_on_minicard: Option<bool>,
478 #[serde(skip_serializing_if = "Option::is_none")]
479 pub allows_text_notes_on_minicard: Option<bool>,
480 #[serde(skip_serializing_if = "Option::is_none")]
481 pub allows_comment_count_on_card: Option<bool>,
482 #[serde(skip_serializing_if = "Option::is_none")]
483 pub allows_activities_on_minicard: Option<bool>,
484}
485
486impl WekanClient {
487 pub async fn board_card_settings(
488 &self,
489 board: &str,
490 token: &SecretString,
491 ) -> Result<BoardCardSettings, ClientError> {
492 super::members::validate_id(board)?;
493 let body = self
494 .execute_success_request(
495 self.http
496 .get(self.board_endpoint(board, Some("cardSettings"))?)
497 .header(ACCEPT, "application/json")
498 .bearer_auth(token.expose_secret()),
499 )
500 .await?;
501 decode_success(&body, "board card settings get", true)
502 }
503
504 pub async fn update_board_card_settings(
505 &self,
506 board: &str,
507 request: &UpdateBoardCardSettingsRequest,
508 token: &SecretString,
509 ) -> Result<BoardCardSettings, ClientError> {
510 super::members::validate_id(board)?;
511 let body = self
512 .execute_success_request(
513 self.http
514 .put(self.board_endpoint(board, Some("cardSettings"))?)
515 .header(ACCEPT, "application/json")
516 .bearer_auth(token.expose_secret())
517 .json(request),
518 )
519 .await?;
520 decode_success(&body, "board card settings update", true)
521 }
522}