1use pib_service_api_types::{
7 Index, Pagination,
8 body::{
9 Body, UpdateBody,
10 by_id::{
11 meeting::{
12 Meeting, MeetingParentId, UpdateMeeting,
13 by_id::agenda_item::{
14 AgendaItem, AgendaItemParentId, UpdateAgendaItem,
15 by_id::consultation::{Consultation, ConsultationParentId, UpdateConsultation},
16 },
17 },
18 membership::{
19 self, Membership, MembershipParentId, OrganizationMembershipParentId,
20 PersonMembershipParentId, UpdateMembership,
21 },
22 organization::{self, Organization, OrganizationParentId, UpdateOrganization},
23 permission::{NewPermission, Permission, PermissionParentId},
24 person::{self, Person, PersonParentId, UpdatePerson},
25 },
26 },
27 config::Config,
28 me::profile::{Profile, UpdateProfile},
29 user::User,
30};
31use pib_service_core_types::{
32 AgendaItemId, BodyId, BodyPermissionId, DataItem, DataPage, MeetingId, MembershipId,
33 OrganizationId, PersonId, UserId,
34};
35
36use crate::IsAuthenticated;
37
38mod requests {
39 pub(super) use pib_client_requests::{
40 body::{
41 self,
42 by_id::{
43 meeting::{self, by_id::agenda_item},
44 membership, organization, permission, person,
45 },
46 },
47 config, get, me, user,
48 };
49}
50
51mod types {
52 pub(super) use pib_service_api_types::{
53 body::{
54 self,
55 by_id::{
56 meeting::{self, by_id::agenda_item},
57 organization, permission, person,
58 },
59 },
60 me,
61 };
62}
63
64#[async_trait::async_trait(?Send)]
65pub trait PibClient: IsAuthenticated + Clone {
66 type ClientError: std::error::Error;
67
68 async fn get(&self) -> Result<Index, Self::ClientError>;
69
70 async fn config_get(&self) -> Result<Config, Self::ClientError>;
71
72 async fn user_get(
73 &self,
74 pagination: Pagination,
75 ) -> Result<DataPage<(), UserId, User>, Self::ClientError>;
76
77 async fn user_by_id_get(
78 &self,
79 user_id: UserId,
80 ) -> Result<DataItem<(), UserId, User>, Self::ClientError>;
81
82 async fn body_get(
83 &self,
84 pagination: Pagination,
85 ) -> Result<DataPage<(), BodyId, Body>, Self::ClientError>;
86
87 async fn body_post(
88 &self,
89 new_body: Body,
90 ) -> Result<DataItem<(), BodyId, Body>, Self::ClientError>;
91
92 async fn body_by_id_get(
93 &self,
94 body_id: BodyId,
95 ) -> Result<DataItem<(), BodyId, Body>, Self::ClientError>;
96
97 async fn body_by_id_patch(
98 &self,
99 body_id: BodyId,
100 update_body: UpdateBody,
101 ) -> Result<DataItem<(), BodyId, Body>, Self::ClientError>;
102
103 async fn body_by_id_permission_get(
104 &self,
105 body_id: BodyId,
106 pagination: Pagination,
107 ) -> Result<DataPage<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError>;
108
109 async fn body_by_id_permission_post(
110 &self,
111 body_id: BodyId,
112 new_permission: NewPermission,
113 ) -> Result<DataItem<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError>;
114
115 async fn body_by_id_permission_by_id_get(
116 &self,
117 body_id: BodyId,
118 permission_id: BodyPermissionId,
119 ) -> Result<DataItem<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError>;
120
121 async fn body_by_id_meeting_get(
122 &self,
123 body_id: BodyId,
124 pagination: Pagination,
125 ) -> Result<DataPage<MeetingParentId, MeetingId, Meeting>, Self::ClientError>;
126
127 async fn body_by_id_meeting_post(
128 &self,
129 body_id: BodyId,
130 new_meeting: Meeting,
131 ) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError>;
132
133 async fn body_by_id_meeting_by_id_get(
134 &self,
135 body_id: BodyId,
136 meeting_id: MeetingId,
137 ) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError>;
138
139 async fn body_by_id_meeting_by_id_patch(
140 &self,
141 body_id: BodyId,
142 meeting_id: MeetingId,
143 update_meeting: UpdateMeeting,
144 ) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError>;
145
146 async fn body_by_id_meeting_by_id_agenda_item_get(
147 &self,
148 body_id: BodyId,
149 meeting_id: MeetingId,
150 pagination: Pagination,
151 ) -> Result<DataPage<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError>;
152
153 async fn body_by_id_meeting_by_id_agenda_item_post(
154 &self,
155 body_id: BodyId,
156 meeting_id: MeetingId,
157 new_agenda_item: AgendaItem,
158 ) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError>;
159
160 async fn body_by_id_meeting_by_id_agenda_item_by_id_get(
161 &self,
162 body_id: BodyId,
163 meeting_id: MeetingId,
164 agenda_item_id: AgendaItemId,
165 ) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError>;
166
167 async fn body_by_id_meeting_by_id_agenda_item_by_id_patch(
168 &self,
169 body_id: BodyId,
170 meeting_id: MeetingId,
171 agenda_item_id: AgendaItemId,
172 update_agenda_item: UpdateAgendaItem,
173 ) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError>;
174
175 async fn body_by_id_meeting_by_id_agenda_item_by_id_consultation_get(
176 &self,
177 body_id: BodyId,
178 meeting_id: MeetingId,
179 agenda_item_id: AgendaItemId,
180 ) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError>;
181
182 async fn body_by_id_meeting_by_id_agenda_item_by_id_consultation_put(
183 &self,
184 body_id: BodyId,
185 meeting_id: MeetingId,
186 agenda_item_id: AgendaItemId,
187 consultation: Consultation,
188 ) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError>;
189
190 async fn body_by_id_meeting_by_id_agenda_item_by_id_consultation_patch(
191 &self,
192 body_id: BodyId,
193 meeting_id: MeetingId,
194 agenda_item_id: AgendaItemId,
195 update_consultation: UpdateConsultation,
196 ) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError>;
197
198 async fn body_by_id_organization_get(
199 &self,
200 body_id: BodyId,
201 pagination: Pagination,
202 ) -> Result<DataPage<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>;
203
204 async fn body_by_id_organization_post(
205 &self,
206 body_id: BodyId,
207 new_organization: Organization,
208 ) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>;
209
210 async fn body_by_id_organization_by_id_get(
211 &self,
212 body_id: BodyId,
213 organization_id: OrganizationId,
214 ) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>;
215
216 async fn body_by_id_organization_by_id_patch(
217 &self,
218 body_id: BodyId,
219 organization_id: OrganizationId,
220 update_organization: UpdateOrganization,
221 ) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>;
222
223 async fn body_by_id_organization_by_id_membership_get(
224 &self,
225 body_id: BodyId,
226 organization_id: OrganizationId,
227 pagination: Pagination,
228 ) -> Result<DataPage<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>;
229
230 async fn body_by_id_organization_by_id_membership_post(
231 &self,
232 body_id: BodyId,
233 organization_id: OrganizationId,
234 new_membership: organization::by_id::membership::NewMembership,
235 ) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>;
236
237 async fn body_by_id_organization_by_id_membership_by_id_get(
238 &self,
239 body_id: BodyId,
240 organization_id: OrganizationId,
241 membership_id: MembershipId,
242 ) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>;
243
244 async fn body_by_id_organization_by_id_membership_by_id_patch(
245 &self,
246 body_id: BodyId,
247 organization_id: OrganizationId,
248 membership_id: MembershipId,
249 update_membership: UpdateMembership,
250 ) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>;
251
252 async fn body_by_id_person_get(
253 &self,
254 body_id: BodyId,
255 pagination: Pagination,
256 ) -> Result<DataPage<PersonParentId, PersonId, Person>, Self::ClientError>;
257
258 async fn body_by_id_person_post(
259 &self,
260 body_id: BodyId,
261 new_person: Person,
262 ) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError>;
263
264 async fn body_by_id_person_by_id_get(
265 &self,
266 body_id: BodyId,
267 person_id: PersonId,
268 ) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError>;
269
270 async fn body_by_id_person_by_id_patch(
271 &self,
272 body_id: BodyId,
273 person_id: PersonId,
274 update_person: UpdatePerson,
275 ) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError>;
276
277 async fn body_by_id_person_by_id_membership_get(
278 &self,
279 body_id: BodyId,
280 person_id: PersonId,
281 pagination: Pagination,
282 ) -> Result<DataPage<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>;
283
284 async fn body_by_id_person_by_id_membership_post(
285 &self,
286 body_id: BodyId,
287 person_id: PersonId,
288 new_membership: person::by_id::membership::NewMembership,
289 ) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>;
290
291 async fn body_by_id_person_by_id_membership_by_id_get(
292 &self,
293 body_id: BodyId,
294 person_id: PersonId,
295 membership_id: MembershipId,
296 ) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>;
297
298 async fn body_by_id_person_by_id_membership_by_id_patch(
299 &self,
300 body_id: BodyId,
301 person_id: PersonId,
302 membership_id: MembershipId,
303 update_membership: UpdateMembership,
304 ) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>;
305
306 async fn body_by_id_membership_get(
307 &self,
308 body_id: BodyId,
309 pagination: Pagination,
310 ) -> Result<DataPage<MembershipParentId, MembershipId, Membership>, Self::ClientError>;
311
312 async fn body_by_id_membership_post(
313 &self,
314 body_id: BodyId,
315 new_membership: Membership,
316 ) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError>;
317
318 async fn body_by_id_membership_by_id_get(
319 &self,
320 body_id: BodyId,
321 membership_id: MembershipId,
322 ) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError>;
323
324 async fn body_by_id_membership_by_id_patch(
325 &self,
326 body_id: BodyId,
327 membership_id: MembershipId,
328 update_membership: UpdateMembership,
329 ) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError>;
330
331 async fn me_profile_get(&self) -> Result<Profile, Self::ClientError>;
332
333 async fn me_profile_patch(
334 &self,
335 update_profile: UpdateProfile,
336 ) -> Result<Profile, Self::ClientError>;
337}
338
339#[async_trait::async_trait(?Send)]
340impl<C: http_request_derive_client::Client + IsAuthenticated + Clone> PibClient for C {
341 type ClientError = C::ClientError;
342
343 async fn get(&self) -> Result<Index, Self::ClientError> {
344 let response = self.execute(requests::get::Request).await?;
345 Ok(response.0.0)
346 }
347
348 async fn config_get(&self) -> Result<Config, Self::ClientError> {
349 let response = self.execute(requests::config::get::Request).await?;
350 Ok(response.0.0)
351 }
352
353 async fn user_get(
354 &self,
355 pagination: Pagination,
356 ) -> Result<DataPage<(), UserId, User>, Self::ClientError> {
357 let response = self
358 .execute(requests::user::get::Request { pagination })
359 .await?;
360 Ok(response.0.0)
361 }
362
363 async fn user_by_id_get(
364 &self,
365 user_id: UserId,
366 ) -> Result<DataItem<(), UserId, User>, Self::ClientError> {
367 let response = self
368 .execute(requests::user::by_id::get::Request { user_id })
369 .await?;
370 Ok(response.0.0)
371 }
372
373 async fn body_get(
374 &self,
375 pagination: Pagination,
376 ) -> Result<DataPage<(), BodyId, Body>, Self::ClientError> {
377 let response = self
378 .execute(requests::body::get::Request { pagination })
379 .await?;
380 Ok(response.0.0)
381 }
382
383 async fn body_post(
384 &self,
385 new_body: Body,
386 ) -> Result<DataItem<(), BodyId, Body>, Self::ClientError> {
387 Ok(self
388 .execute(requests::body::post::Request {
389 payload: types::body::post::RequestBody(new_body),
390 })
391 .await?
392 .0
393 .0)
394 }
395
396 async fn body_by_id_get(
397 &self,
398 body_id: BodyId,
399 ) -> Result<DataItem<(), BodyId, Body>, Self::ClientError> {
400 let response = self
401 .execute(requests::body::by_id::get::Request { body_id })
402 .await?;
403 Ok(response.0.0)
404 }
405
406 async fn body_by_id_patch(
407 &self,
408 body_id: BodyId,
409 update_body: UpdateBody,
410 ) -> Result<DataItem<(), BodyId, Body>, Self::ClientError> {
411 Ok(self
412 .execute(requests::body::by_id::patch::Request {
413 body_id,
414 payload: types::body::by_id::patch::RequestBody(update_body),
415 })
416 .await?
417 .0
418 .0)
419 }
420
421 async fn body_by_id_permission_get(
422 &self,
423 body_id: BodyId,
424 pagination: Pagination,
425 ) -> Result<DataPage<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError> {
426 Ok(self
427 .execute(requests::permission::get::Request {
428 body_id,
429 pagination,
430 })
431 .await?
432 .0
433 .0)
434 }
435
436 async fn body_by_id_permission_post(
437 &self,
438 body_id: BodyId,
439 new_permission: NewPermission,
440 ) -> Result<DataItem<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError> {
441 Ok(self
442 .execute(requests::permission::post::Request {
443 body_id,
444 payload: types::permission::post::RequestBody(new_permission),
445 })
446 .await?
447 .0
448 .0)
449 }
450
451 async fn body_by_id_permission_by_id_get(
452 &self,
453 body_id: BodyId,
454 permission_id: BodyPermissionId,
455 ) -> Result<DataItem<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError> {
456 let response = self
457 .execute(requests::permission::by_id::get::Request {
458 body_id,
459 permission_id,
460 })
461 .await?;
462 Ok(response.0.0)
463 }
464
465 async fn body_by_id_meeting_get(
466 &self,
467 body_id: BodyId,
468 pagination: Pagination,
469 ) -> Result<DataPage<MeetingParentId, MeetingId, Meeting>, Self::ClientError> {
470 Ok(self
471 .execute(requests::meeting::get::Request {
472 body_id,
473 pagination,
474 })
475 .await?
476 .0
477 .0)
478 }
479
480 async fn body_by_id_meeting_post(
481 &self,
482 body_id: BodyId,
483 new_meeting: Meeting,
484 ) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError> {
485 Ok(self
486 .execute(requests::meeting::post::Request {
487 body_id,
488 payload: types::meeting::post::RequestBody(new_meeting),
489 })
490 .await?
491 .0
492 .0)
493 }
494
495 async fn body_by_id_meeting_by_id_get(
496 &self,
497 body_id: BodyId,
498 meeting_id: MeetingId,
499 ) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError> {
500 let response = self
501 .execute(requests::meeting::by_id::get::Request {
502 body_id,
503 meeting_id,
504 })
505 .await?;
506 Ok(response.0.0)
507 }
508
509 async fn body_by_id_meeting_by_id_patch(
510 &self,
511 body_id: BodyId,
512 meeting_id: MeetingId,
513 update_meeting: UpdateMeeting,
514 ) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError> {
515 let response = self
516 .execute(requests::meeting::by_id::patch::Request {
517 body_id,
518 meeting_id,
519 payload: types::meeting::by_id::patch::RequestBody(update_meeting),
520 })
521 .await?;
522 Ok(response.0.0)
523 }
524
525 async fn body_by_id_meeting_by_id_agenda_item_get(
526 &self,
527 body_id: BodyId,
528 meeting_id: MeetingId,
529 pagination: Pagination,
530 ) -> Result<DataPage<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError> {
531 let response = self
532 .execute(requests::agenda_item::get::Request {
533 body_id,
534 meeting_id,
535 pagination,
536 })
537 .await?;
538 Ok(response.0.0)
539 }
540
541 async fn body_by_id_meeting_by_id_agenda_item_post(
542 &self,
543 body_id: BodyId,
544 meeting_id: MeetingId,
545 new_agenda_item: AgendaItem,
546 ) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError> {
547 Ok(self
548 .execute(requests::agenda_item::post::Request {
549 body_id,
550 meeting_id,
551 payload: types::agenda_item::post::RequestBody(new_agenda_item),
552 })
553 .await?
554 .0
555 .0)
556 }
557
558 async fn body_by_id_meeting_by_id_agenda_item_by_id_get(
559 &self,
560 body_id: BodyId,
561 meeting_id: MeetingId,
562 agenda_item_id: AgendaItemId,
563 ) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError> {
564 let response = self
565 .execute(requests::agenda_item::by_id::get::Request {
566 body_id,
567 meeting_id,
568 agenda_item_id,
569 })
570 .await?;
571 Ok(response.0.0)
572 }
573
574 async fn body_by_id_meeting_by_id_agenda_item_by_id_patch(
575 &self,
576 body_id: BodyId,
577 meeting_id: MeetingId,
578 agenda_item_id: AgendaItemId,
579 update_agenda_item: UpdateAgendaItem,
580 ) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError> {
581 let response = self
582 .execute(requests::agenda_item::by_id::patch::Request {
583 body_id,
584 meeting_id,
585 agenda_item_id,
586 payload: types::agenda_item::by_id::patch::RequestBody(update_agenda_item),
587 })
588 .await?;
589 Ok(response.0.0)
590 }
591
592 async fn body_by_id_meeting_by_id_agenda_item_by_id_consultation_get(
593 &self,
594 body_id: BodyId,
595 meeting_id: MeetingId,
596 agenda_item_id: AgendaItemId,
597 ) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError> {
598 let response = self
599 .execute(requests::agenda_item::by_id::consultation::get::Request {
600 body_id,
601 meeting_id,
602 agenda_item_id,
603 })
604 .await?;
605 Ok(response.0.0)
606 }
607
608 async fn body_by_id_meeting_by_id_agenda_item_by_id_consultation_put(
609 &self,
610 body_id: BodyId,
611 meeting_id: MeetingId,
612 agenda_item_id: AgendaItemId,
613 consultation: Consultation,
614 ) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError> {
615 let response = self
616 .execute(requests::agenda_item::by_id::consultation::put::Request {
617 body_id,
618 meeting_id,
619 agenda_item_id,
620 payload: types::agenda_item::by_id::consultation::put::RequestBody(consultation),
621 })
622 .await?;
623 Ok(response.0.0)
624 }
625
626 async fn body_by_id_meeting_by_id_agenda_item_by_id_consultation_patch(
627 &self,
628 body_id: BodyId,
629 meeting_id: MeetingId,
630 agenda_item_id: AgendaItemId,
631 update_consultation: UpdateConsultation,
632 ) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError> {
633 let response = self
634 .execute(requests::agenda_item::by_id::consultation::patch::Request {
635 body_id,
636 meeting_id,
637 agenda_item_id,
638 payload: types::agenda_item::by_id::consultation::patch::RequestBody(
639 update_consultation,
640 ),
641 })
642 .await?;
643 Ok(response.0.0)
644 }
645
646 async fn body_by_id_organization_get(
647 &self,
648 body_id: BodyId,
649 pagination: Pagination,
650 ) -> Result<DataPage<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>
651 {
652 Ok(self
653 .execute(requests::organization::get::Request {
654 body_id,
655 pagination,
656 })
657 .await?
658 .0
659 .0)
660 }
661
662 async fn body_by_id_organization_post(
663 &self,
664 body_id: BodyId,
665 new_organization: Organization,
666 ) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>
667 {
668 Ok(self
669 .execute(requests::organization::post::Request {
670 body_id,
671 payload: types::organization::post::RequestBody(new_organization),
672 })
673 .await?
674 .0
675 .0)
676 }
677
678 async fn body_by_id_organization_by_id_get(
679 &self,
680 body_id: BodyId,
681 organization_id: OrganizationId,
682 ) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>
683 {
684 let response = self
685 .execute(requests::organization::by_id::get::Request {
686 body_id,
687 organization_id,
688 })
689 .await?;
690 Ok(response.0.0)
691 }
692
693 async fn body_by_id_organization_by_id_patch(
694 &self,
695 body_id: BodyId,
696 organization_id: OrganizationId,
697 update_organization: UpdateOrganization,
698 ) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>
699 {
700 let response = self
701 .execute(requests::organization::by_id::patch::Request {
702 body_id,
703 organization_id,
704 payload: organization::by_id::patch::RequestBody(update_organization),
705 })
706 .await?;
707 Ok(response.0.0)
708 }
709
710 async fn body_by_id_organization_by_id_membership_get(
711 &self,
712 body_id: BodyId,
713 organization_id: OrganizationId,
714 pagination: Pagination,
715 ) -> Result<DataPage<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>
716 {
717 let response = self
718 .execute(requests::organization::by_id::membership::get::Request {
719 body_id,
720 organization_id,
721 pagination,
722 })
723 .await?;
724 Ok(response.0.0)
725 }
726
727 async fn body_by_id_organization_by_id_membership_post(
728 &self,
729 body_id: BodyId,
730 organization_id: OrganizationId,
731 new_membership: organization::by_id::membership::NewMembership,
732 ) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>
733 {
734 Ok(self
735 .execute(requests::organization::by_id::membership::post::Request {
736 body_id,
737 organization_id,
738 payload: types::organization::by_id::membership::post::RequestBody(new_membership),
739 })
740 .await?
741 .0
742 .0)
743 }
744
745 async fn body_by_id_organization_by_id_membership_by_id_get(
746 &self,
747 body_id: BodyId,
748 organization_id: OrganizationId,
749 membership_id: MembershipId,
750 ) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>
751 {
752 let response = self
753 .execute(
754 requests::organization::by_id::membership::by_id::get::Request {
755 body_id,
756 organization_id,
757 membership_id,
758 },
759 )
760 .await?;
761 Ok(response.0.0)
762 }
763
764 async fn body_by_id_organization_by_id_membership_by_id_patch(
765 &self,
766 body_id: BodyId,
767 organization_id: OrganizationId,
768 membership_id: MembershipId,
769 update_membership: UpdateMembership,
770 ) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>
771 {
772 let response = self
773 .execute(
774 requests::organization::by_id::membership::by_id::patch::Request {
775 body_id,
776 organization_id,
777 membership_id,
778 payload: organization::by_id::membership::by_id::patch::RequestBody(
779 update_membership,
780 ),
781 },
782 )
783 .await?;
784 Ok(response.0.0)
785 }
786
787 async fn body_by_id_person_get(
788 &self,
789 body_id: BodyId,
790 pagination: Pagination,
791 ) -> Result<DataPage<PersonParentId, PersonId, Person>, Self::ClientError> {
792 Ok(self
793 .execute(requests::person::get::Request {
794 body_id,
795 pagination,
796 })
797 .await?
798 .0
799 .0)
800 }
801
802 async fn body_by_id_person_post(
803 &self,
804 body_id: BodyId,
805 new_person: Person,
806 ) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError> {
807 Ok(self
808 .execute(requests::person::post::Request {
809 body_id,
810 payload: types::person::post::RequestBody(new_person),
811 })
812 .await?
813 .0
814 .0)
815 }
816
817 async fn body_by_id_person_by_id_get(
818 &self,
819 body_id: BodyId,
820 person_id: PersonId,
821 ) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError> {
822 let response = self
823 .execute(requests::person::by_id::get::Request { body_id, person_id })
824 .await?;
825 Ok(response.0.0)
826 }
827
828 async fn body_by_id_person_by_id_patch(
829 &self,
830 body_id: BodyId,
831 person_id: PersonId,
832 update_person: UpdatePerson,
833 ) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError> {
834 let response = self
835 .execute(requests::person::by_id::patch::Request {
836 body_id,
837 person_id,
838 payload: person::by_id::patch::RequestBody(update_person),
839 })
840 .await?;
841 Ok(response.0.0)
842 }
843
844 async fn body_by_id_person_by_id_membership_get(
845 &self,
846 body_id: BodyId,
847 person_id: PersonId,
848 pagination: Pagination,
849 ) -> Result<DataPage<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>
850 {
851 let response = self
852 .execute(requests::person::by_id::membership::get::Request {
853 body_id,
854 person_id,
855 pagination,
856 })
857 .await?;
858 Ok(response.0.0)
859 }
860
861 async fn body_by_id_person_by_id_membership_post(
862 &self,
863 body_id: BodyId,
864 person_id: PersonId,
865 new_membership: person::by_id::membership::NewMembership,
866 ) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>
867 {
868 Ok(self
869 .execute(requests::person::by_id::membership::post::Request {
870 body_id,
871 person_id,
872 payload: types::person::by_id::membership::post::RequestBody(new_membership),
873 })
874 .await?
875 .0
876 .0)
877 }
878
879 async fn body_by_id_person_by_id_membership_by_id_get(
880 &self,
881 body_id: BodyId,
882 person_id: PersonId,
883 membership_id: MembershipId,
884 ) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>
885 {
886 let response = self
887 .execute(requests::person::by_id::membership::by_id::get::Request {
888 body_id,
889 person_id,
890 membership_id,
891 })
892 .await?;
893 Ok(response.0.0)
894 }
895
896 async fn body_by_id_person_by_id_membership_by_id_patch(
897 &self,
898 body_id: BodyId,
899 person_id: PersonId,
900 membership_id: MembershipId,
901 update_membership: UpdateMembership,
902 ) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>
903 {
904 let response = self
905 .execute(requests::person::by_id::membership::by_id::patch::Request {
906 body_id,
907 person_id,
908 membership_id,
909 payload: person::by_id::membership::by_id::patch::RequestBody(update_membership),
910 })
911 .await?;
912 Ok(response.0.0)
913 }
914
915 async fn body_by_id_membership_get(
916 &self,
917 body_id: BodyId,
918 pagination: Pagination,
919 ) -> Result<DataPage<MembershipParentId, MembershipId, Membership>, Self::ClientError> {
920 let response = self
921 .execute(requests::membership::get::Request {
922 body_id,
923 pagination,
924 })
925 .await?;
926 Ok(response.0.0)
927 }
928
929 async fn body_by_id_membership_post(
930 &self,
931 body_id: BodyId,
932 new_membership: Membership,
933 ) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError> {
934 Ok(self
935 .execute(requests::membership::post::Request {
936 body_id,
937 payload: membership::post::RequestBody(new_membership),
938 })
939 .await?
940 .0
941 .0)
942 }
943
944 async fn body_by_id_membership_by_id_get(
945 &self,
946 body_id: BodyId,
947 membership_id: MembershipId,
948 ) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError> {
949 let response = self
950 .execute(requests::membership::by_id::get::Request {
951 body_id,
952 membership_id,
953 })
954 .await?;
955 Ok(response.0.0)
956 }
957
958 async fn body_by_id_membership_by_id_patch(
959 &self,
960 body_id: BodyId,
961 membership_id: MembershipId,
962 update_membership: UpdateMembership,
963 ) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError> {
964 let response = self
965 .execute(requests::membership::by_id::patch::Request {
966 body_id,
967 membership_id,
968 payload: membership::by_id::patch::RequestBody(update_membership),
969 })
970 .await?;
971 Ok(response.0.0)
972 }
973
974 async fn me_profile_get(&self) -> Result<types::me::profile::Profile, Self::ClientError> {
975 Ok(self.execute(requests::me::profile::get::Request).await?.0.0)
976 }
977
978 async fn me_profile_patch(
979 &self,
980 update_profile: UpdateProfile,
981 ) -> Result<Profile, Self::ClientError> {
982 Ok(self
983 .execute(requests::me::profile::patch::Request {
984 payload: types::me::profile::patch::RequestBody(update_profile),
985 })
986 .await?
987 .0
988 .0)
989 }
990}