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