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