fizzy_sdk/generated/services/
cards.rs1use crate::client::Scope;
4use crate::error::Error;
5use crate::generated::routes;
6use crate::generated::types::*;
7use crate::pagination::Page;
8
9#[derive(Debug, Clone, Default, PartialEq)]
11pub struct ListCardsParams {
12 pub board_ids: Option<Vec<String>>,
14 pub tag_ids: Option<Vec<String>>,
16 pub assignee_ids: Option<Vec<String>>,
18 pub creator_ids: Option<Vec<String>>,
20 pub closer_ids: Option<Vec<String>>,
22 pub card_ids: Option<Vec<String>>,
24 pub column_ids: Option<Vec<String>>,
26 pub indexed_by: Option<String>,
28 pub sorted_by: Option<String>,
30 pub assignment_status: Option<String>,
32 pub creation: Option<String>,
34 pub closure: Option<String>,
36 pub terms: Option<Vec<String>>,
38}
39
40#[derive(Debug, Clone, Default, PartialEq)]
42pub struct ListActivitiesParams {
43 pub creator_ids: Option<Vec<String>>,
45 pub board_ids: Option<Vec<String>>,
47}
48
49pub struct CardsService<'a> {
51 scope: Scope<'a>,
52}
53
54impl<'a> CardsService<'a> {
55 pub(crate) fn new(scope: Scope<'a>) -> Self {
56 Self { scope }
57 }
58
59 pub fn scope(&self) -> &Scope<'a> {
61 &self.scope
62 }
63
64 pub async fn assign(
68 &self,
69 card_number: i32,
70 body: &AssignCardRequestContent,
71 ) -> Result<(), Error> {
72 let mut operation = self
73 .scope
74 .operation(&routes::ASSIGN_CARD, &[&card_number])?;
75 operation.resource_id(card_number);
76 operation.json(body)?;
77 self.scope.client().send_unit(operation).await
78 }
79
80 pub async fn close(&self, card_number: i32) -> Result<(), Error> {
84 let mut operation = self.scope.operation(&routes::CLOSE_CARD, &[&card_number])?;
85 operation.resource_id(card_number);
86 self.scope.client().send_unit(operation).await
87 }
88
89 pub async fn create(&self, body: &CreateCardRequestContent) -> Result<Card, Error> {
93 let mut operation = self.scope.operation(&routes::CREATE_CARD, &[])?;
94 operation.json(body)?;
95 self.scope.client().send(operation).await
96 }
97
98 pub async fn delete(&self, card_number: i32) -> Result<(), Error> {
102 let mut operation = self
103 .scope
104 .operation(&routes::DELETE_CARD, &[&card_number])?;
105 operation.resource_id(card_number);
106 self.scope.client().send_unit(operation).await
107 }
108
109 pub async fn delete_image(&self, card_number: i32) -> Result<(), Error> {
113 let mut operation = self
114 .scope
115 .operation(&routes::DELETE_CARD_IMAGE, &[&card_number])?;
116 operation.resource_id(card_number);
117 self.scope.client().send_unit(operation).await
118 }
119
120 pub async fn get(&self, card_number: i32) -> Result<Card, Error> {
124 let mut operation = self.scope.operation(&routes::GET_CARD, &[&card_number])?;
125 operation.resource_id(card_number);
126 self.scope.client().send(operation).await
127 }
128
129 pub async fn gold(&self, card_number: i32) -> Result<(), Error> {
133 let mut operation = self.scope.operation(&routes::GOLD_CARD, &[&card_number])?;
134 operation.resource_id(card_number);
135 self.scope.client().send_unit(operation).await
136 }
137
138 pub async fn list(&self, params: &ListCardsParams) -> Result<Page<Vec<Card>>, Error> {
144 let mut operation = self.scope.operation(&routes::LIST_CARDS, &[])?;
145 operation.query_all_optional("board_ids[]", params.board_ids.as_deref());
146 operation.query_all_optional("tag_ids[]", params.tag_ids.as_deref());
147 operation.query_all_optional("assignee_ids[]", params.assignee_ids.as_deref());
148 operation.query_all_optional("creator_ids[]", params.creator_ids.as_deref());
149 operation.query_all_optional("closer_ids[]", params.closer_ids.as_deref());
150 operation.query_all_optional("card_ids[]", params.card_ids.as_deref());
151 operation.query_all_optional("column_ids[]", params.column_ids.as_deref());
152 operation.query_optional("indexed_by", params.indexed_by.as_ref());
153 operation.query_optional("sorted_by", params.sorted_by.as_ref());
154 operation.query_optional("assignment_status", params.assignment_status.as_ref());
155 operation.query_optional("creation", params.creation.as_ref());
156 operation.query_optional("closure", params.closure.as_ref());
157 operation.query_all_optional("terms[]", params.terms.as_deref());
158 self.scope.client().send_page(operation).await
159 }
160
161 pub async fn list_activities(
167 &self,
168 params: &ListActivitiesParams,
169 ) -> Result<Page<Vec<Activity>>, Error> {
170 let mut operation = self.scope.operation(&routes::LIST_ACTIVITIES, &[])?;
171 operation.query_all_optional("creator_ids[]", params.creator_ids.as_deref());
172 operation.query_all_optional("board_ids[]", params.board_ids.as_deref());
173 self.scope.client().send_page(operation).await
174 }
175
176 pub async fn list_column_cards(
182 &self,
183 board_id: &str,
184 column_id: &str,
185 ) -> Result<Page<Vec<Card>>, Error> {
186 let mut operation = self
187 .scope
188 .operation(&routes::LIST_COLUMN_CARDS, &[&board_id, &column_id])?;
189 operation.resource_id(board_id);
190 self.scope.client().send_page(operation).await
191 }
192
193 pub async fn mark_read(&self, card_number: i32) -> Result<(), Error> {
197 let mut operation = self
198 .scope
199 .operation(&routes::MARK_CARD_READ, &[&card_number])?;
200 operation.resource_id(card_number);
201 self.scope.client().send_unit(operation).await
202 }
203
204 pub async fn mark_unread(&self, card_number: i32) -> Result<(), Error> {
208 let mut operation = self
209 .scope
210 .operation(&routes::MARK_CARD_UNREAD, &[&card_number])?;
211 operation.resource_id(card_number);
212 self.scope.client().send_unit(operation).await
213 }
214
215 pub async fn move_to_board(
219 &self,
220 card_number: i32,
221 body: &MoveCardRequestContent,
222 ) -> Result<Card, Error> {
223 let mut operation = self.scope.operation(&routes::MOVE_CARD, &[&card_number])?;
224 operation.resource_id(card_number);
225 operation.json(body)?;
226 self.scope.client().send(operation).await
227 }
228
229 pub async fn pin(&self, card_number: i32) -> Result<(), Error> {
233 let mut operation = self.scope.operation(&routes::PIN_CARD, &[&card_number])?;
234 operation.resource_id(card_number);
235 self.scope.client().send_unit(operation).await
236 }
237
238 pub async fn postpone(&self, card_number: i32) -> Result<(), Error> {
242 let mut operation = self
243 .scope
244 .operation(&routes::POSTPONE_CARD, &[&card_number])?;
245 operation.resource_id(card_number);
246 self.scope.client().send_unit(operation).await
247 }
248
249 pub async fn publish(&self, card_number: i32) -> Result<(), Error> {
253 let mut operation = self
254 .scope
255 .operation(&routes::PUBLISH_CARD, &[&card_number])?;
256 operation.resource_id(card_number);
257 self.scope.client().send_unit(operation).await
258 }
259
260 pub async fn reopen(&self, card_number: i32) -> Result<(), Error> {
264 let mut operation = self
265 .scope
266 .operation(&routes::REOPEN_CARD, &[&card_number])?;
267 operation.resource_id(card_number);
268 self.scope.client().send_unit(operation).await
269 }
270
271 pub async fn self_assign(&self, card_number: i32) -> Result<(), Error> {
275 let mut operation = self
276 .scope
277 .operation(&routes::SELF_ASSIGN_CARD, &[&card_number])?;
278 operation.resource_id(card_number);
279 self.scope.client().send_unit(operation).await
280 }
281
282 pub async fn tag(&self, card_number: i32, body: &TagCardRequestContent) -> Result<(), Error> {
286 let mut operation = self.scope.operation(&routes::TAG_CARD, &[&card_number])?;
287 operation.resource_id(card_number);
288 operation.json(body)?;
289 self.scope.client().send_unit(operation).await
290 }
291
292 pub async fn triage(
296 &self,
297 card_number: i32,
298 body: &TriageCardRequestContent,
299 ) -> Result<(), Error> {
300 let mut operation = self
301 .scope
302 .operation(&routes::TRIAGE_CARD, &[&card_number])?;
303 operation.resource_id(card_number);
304 operation.json(body)?;
305 self.scope.client().send_unit(operation).await
306 }
307
308 pub async fn un_triage(&self, card_number: i32) -> Result<(), Error> {
312 let mut operation = self
313 .scope
314 .operation(&routes::UN_TRIAGE_CARD, &[&card_number])?;
315 operation.resource_id(card_number);
316 self.scope.client().send_unit(operation).await
317 }
318
319 pub async fn ungold(&self, card_number: i32) -> Result<(), Error> {
323 let mut operation = self
324 .scope
325 .operation(&routes::UNGOLD_CARD, &[&card_number])?;
326 operation.resource_id(card_number);
327 self.scope.client().send_unit(operation).await
328 }
329
330 pub async fn unpin(&self, card_number: i32) -> Result<(), Error> {
334 let mut operation = self.scope.operation(&routes::UNPIN_CARD, &[&card_number])?;
335 operation.resource_id(card_number);
336 self.scope.client().send_unit(operation).await
337 }
338
339 pub async fn unwatch(&self, card_number: i32) -> Result<(), Error> {
343 let mut operation = self
344 .scope
345 .operation(&routes::UNWATCH_CARD, &[&card_number])?;
346 operation.resource_id(card_number);
347 self.scope.client().send_unit(operation).await
348 }
349
350 pub async fn update(
354 &self,
355 card_number: i32,
356 body: &UpdateCardRequestContent,
357 ) -> Result<Card, Error> {
358 let mut operation = self
359 .scope
360 .operation(&routes::UPDATE_CARD, &[&card_number])?;
361 operation.resource_id(card_number);
362 operation.json(body)?;
363 self.scope.client().send(operation).await
364 }
365
366 pub async fn watch(&self, card_number: i32) -> Result<(), Error> {
370 let mut operation = self.scope.operation(&routes::WATCH_CARD, &[&card_number])?;
371 operation.resource_id(card_number);
372 self.scope.client().send_unit(operation).await
373 }
374}