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