use pib_service_api_types::{
Index, Pagination,
body::{
Body, UpdateBody,
by_id_or_alias::{
location::{Location, LocationParentId, UpdateLocation},
meeting::{
Meeting, MeetingParentId, UpdateMeeting,
by_id::agenda_item::{
AgendaItem, AgendaItemParentId, UpdateAgendaItem,
by_id::consultation::{Consultation, ConsultationParentId, UpdateConsultation},
},
},
membership::{
self, Membership, MembershipParentId, OrganizationMembershipParentId,
PersonMembershipParentId, UpdateMembership,
},
organization::{self, Organization, OrganizationParentId, UpdateOrganization},
permission::{NewPermission, Permission, PermissionParentId},
person::{self, Person, PersonParentId, UpdatePerson},
},
},
config::Config,
me::profile::{Profile, UpdateProfile},
user::User,
};
use pib_service_core_types::{
AgendaItemId, BodyId, BodyIdOrAlias, BodyPermissionId, DataItem, DataPage, LocationId,
MeetingId, MembershipId, OrganizationId, PersonId, UserId,
};
use crate::IsAuthenticated;
mod requests {
pub(super) use pib_client_requests::{
body::{
self,
by_id_or_alias::{
location,
meeting::{self, by_id::agenda_item},
membership, organization, permission, person,
},
},
config, get, me, user,
};
}
mod types {
pub(super) use pib_service_api_types::{
body::{
self,
by_id_or_alias::{
location,
meeting::{self, by_id::agenda_item},
organization, permission, person,
},
},
me,
};
}
#[async_trait::async_trait(?Send)]
pub trait PibClient: IsAuthenticated + Clone {
type ClientError: std::error::Error;
async fn get(&self) -> Result<Index, Self::ClientError>;
async fn config_get(&self) -> Result<Config, Self::ClientError>;
async fn user_get(
&self,
pagination: Pagination,
) -> Result<DataPage<(), UserId, User>, Self::ClientError>;
async fn user_by_id_get(
&self,
user_id: UserId,
) -> Result<DataItem<(), UserId, User>, Self::ClientError>;
async fn body_get(
&self,
pagination: Pagination,
) -> Result<DataPage<(), BodyId, Body>, Self::ClientError>;
async fn body_post(
&self,
new_body: Body,
) -> Result<DataItem<(), BodyId, Body>, Self::ClientError>;
async fn body_by_id_or_alias_get(
&self,
body_id_or_alias: BodyIdOrAlias,
) -> Result<DataItem<(), BodyId, Body>, Self::ClientError>;
async fn body_by_id_or_alias_patch(
&self,
body_id_or_alias: BodyIdOrAlias,
update_body: UpdateBody,
) -> Result<DataItem<(), BodyId, Body>, Self::ClientError>;
async fn body_by_id_or_alias_permission_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError>;
async fn body_by_id_or_alias_permission_post(
&self,
body_id: BodyId,
new_permission: NewPermission,
) -> Result<DataItem<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError>;
async fn body_by_id_or_alias_permission_by_id_get(
&self,
body_id: BodyId,
permission_id: BodyPermissionId,
) -> Result<DataItem<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<MeetingParentId, MeetingId, Meeting>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_post(
&self,
body_id: BodyId,
new_meeting: Meeting,
) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_by_id_get(
&self,
body_id: BodyId,
meeting_id: MeetingId,
) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_by_id_patch(
&self,
body_id: BodyId,
meeting_id: MeetingId,
update_meeting: UpdateMeeting,
) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_by_id_agenda_item_get(
&self,
body_id: BodyId,
meeting_id: MeetingId,
pagination: Pagination,
) -> Result<DataPage<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_by_id_agenda_item_post(
&self,
body_id: BodyId,
meeting_id: MeetingId,
new_agenda_item: AgendaItem,
) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_get(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_patch(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
update_agenda_item: UpdateAgendaItem,
) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_consultation_get(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_consultation_put(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
consultation: Consultation,
) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError>;
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_consultation_patch(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
update_consultation: UpdateConsultation,
) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError>;
async fn body_by_id_or_alias_organization_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>;
async fn body_by_id_or_alias_organization_post(
&self,
body_id: BodyId,
new_organization: Organization,
) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>;
async fn body_by_id_or_alias_organization_by_id_get(
&self,
body_id: BodyId,
organization_id: OrganizationId,
) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>;
async fn body_by_id_or_alias_organization_by_id_patch(
&self,
body_id: BodyId,
organization_id: OrganizationId,
update_organization: UpdateOrganization,
) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>;
async fn body_by_id_or_alias_organization_by_id_membership_get(
&self,
body_id: BodyId,
organization_id: OrganizationId,
pagination: Pagination,
) -> Result<DataPage<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_organization_by_id_membership_post(
&self,
body_id: BodyId,
organization_id: OrganizationId,
new_membership: organization::by_id::membership::NewMembership,
) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_organization_by_id_membership_by_id_get(
&self,
body_id: BodyId,
organization_id: OrganizationId,
membership_id: MembershipId,
) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_organization_by_id_membership_by_id_patch(
&self,
body_id: BodyId,
organization_id: OrganizationId,
membership_id: MembershipId,
update_membership: UpdateMembership,
) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_person_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<PersonParentId, PersonId, Person>, Self::ClientError>;
async fn body_by_id_or_alias_person_post(
&self,
body_id: BodyId,
new_person: Person,
) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError>;
async fn body_by_id_or_alias_person_by_id_get(
&self,
body_id: BodyId,
person_id: PersonId,
) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError>;
async fn body_by_id_or_alias_person_by_id_patch(
&self,
body_id: BodyId,
person_id: PersonId,
update_person: UpdatePerson,
) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError>;
async fn body_by_id_or_alias_person_by_id_membership_get(
&self,
body_id: BodyId,
person_id: PersonId,
pagination: Pagination,
) -> Result<DataPage<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_person_by_id_membership_post(
&self,
body_id: BodyId,
person_id: PersonId,
new_membership: person::by_id::membership::NewMembership,
) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_person_by_id_membership_by_id_get(
&self,
body_id: BodyId,
person_id: PersonId,
membership_id: MembershipId,
) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_person_by_id_membership_by_id_patch(
&self,
body_id: BodyId,
person_id: PersonId,
membership_id: MembershipId,
update_membership: UpdateMembership,
) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_membership_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<MembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_membership_post(
&self,
body_id: BodyId,
new_membership: Membership,
) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_membership_by_id_get(
&self,
body_id: BodyId,
membership_id: MembershipId,
) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_membership_by_id_patch(
&self,
body_id: BodyId,
membership_id: MembershipId,
update_membership: UpdateMembership,
) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError>;
async fn body_by_id_or_alias_location_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<LocationParentId, LocationId, Location>, Self::ClientError>;
async fn body_by_id_or_alias_location_post(
&self,
body_id: BodyId,
new_location: Location,
) -> Result<DataItem<LocationParentId, LocationId, Location>, Self::ClientError>;
async fn body_by_id_or_alias_location_by_id_get(
&self,
body_id: BodyId,
location_id: LocationId,
) -> Result<DataItem<LocationParentId, LocationId, Location>, Self::ClientError>;
async fn body_by_id_or_alias_location_by_id_patch(
&self,
body_id: BodyId,
location_id: LocationId,
update_location: UpdateLocation,
) -> Result<DataItem<LocationParentId, LocationId, Location>, Self::ClientError>;
async fn me_profile_get(&self) -> Result<Profile, Self::ClientError>;
async fn me_profile_patch(
&self,
update_profile: UpdateProfile,
) -> Result<Profile, Self::ClientError>;
}
#[async_trait::async_trait(?Send)]
impl<C: http_request_derive_client::Client + IsAuthenticated + Clone> PibClient for C {
type ClientError = C::ClientError;
async fn get(&self) -> Result<Index, Self::ClientError> {
let response = self.execute(requests::get::Request).await?;
Ok(response.0.0)
}
async fn config_get(&self) -> Result<Config, Self::ClientError> {
let response = self.execute(requests::config::get::Request).await?;
Ok(response.0.0)
}
async fn user_get(
&self,
pagination: Pagination,
) -> Result<DataPage<(), UserId, User>, Self::ClientError> {
let response = self
.execute(requests::user::get::Request { pagination })
.await?;
Ok(response.0.0)
}
async fn user_by_id_get(
&self,
user_id: UserId,
) -> Result<DataItem<(), UserId, User>, Self::ClientError> {
let response = self
.execute(requests::user::by_id::get::Request { user_id })
.await?;
Ok(response.0.0)
}
async fn body_get(
&self,
pagination: Pagination,
) -> Result<DataPage<(), BodyId, Body>, Self::ClientError> {
let response = self
.execute(requests::body::get::Request { pagination })
.await?;
Ok(response.0.0)
}
async fn body_post(
&self,
new_body: Body,
) -> Result<DataItem<(), BodyId, Body>, Self::ClientError> {
Ok(self
.execute(requests::body::post::Request {
payload: types::body::post::RequestBody(new_body),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_get(
&self,
body_id_or_alias: BodyIdOrAlias,
) -> Result<DataItem<(), BodyId, Body>, Self::ClientError> {
let response = self
.execute(requests::body::by_id_or_alias::get::Request { body_id_or_alias })
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_patch(
&self,
body_id_or_alias: BodyIdOrAlias,
update_body: UpdateBody,
) -> Result<DataItem<(), BodyId, Body>, Self::ClientError> {
Ok(self
.execute(requests::body::by_id_or_alias::patch::Request {
body_id_or_alias,
payload: types::body::by_id_or_alias::patch::RequestBody(update_body),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_permission_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError> {
Ok(self
.execute(requests::permission::get::Request {
body_id_or_alias: body_id.into(),
pagination,
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_permission_post(
&self,
body_id: BodyId,
new_permission: NewPermission,
) -> Result<DataItem<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError> {
Ok(self
.execute(requests::permission::post::Request {
body_id_or_alias: body_id.into(),
payload: types::permission::post::RequestBody(new_permission),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_permission_by_id_get(
&self,
body_id: BodyId,
permission_id: BodyPermissionId,
) -> Result<DataItem<PermissionParentId, BodyPermissionId, Permission>, Self::ClientError> {
let response = self
.execute(requests::permission::by_id::get::Request {
body_id_or_alias: body_id.into(),
permission_id,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_meeting_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<MeetingParentId, MeetingId, Meeting>, Self::ClientError> {
Ok(self
.execute(requests::meeting::get::Request {
body_id_or_alias: body_id.into(),
pagination,
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_meeting_post(
&self,
body_id: BodyId,
new_meeting: Meeting,
) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError> {
Ok(self
.execute(requests::meeting::post::Request {
body_id_or_alias: body_id.into(),
payload: types::meeting::post::RequestBody(new_meeting),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_meeting_by_id_get(
&self,
body_id: BodyId,
meeting_id: MeetingId,
) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError> {
let response = self
.execute(requests::meeting::by_id::get::Request {
body_id_or_alias: body_id.into(),
meeting_id,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_meeting_by_id_patch(
&self,
body_id: BodyId,
meeting_id: MeetingId,
update_meeting: UpdateMeeting,
) -> Result<DataItem<MeetingParentId, MeetingId, Meeting>, Self::ClientError> {
let response = self
.execute(requests::meeting::by_id::patch::Request {
body_id_or_alias: body_id.into(),
meeting_id,
payload: types::meeting::by_id::patch::RequestBody(update_meeting),
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_meeting_by_id_agenda_item_get(
&self,
body_id: BodyId,
meeting_id: MeetingId,
pagination: Pagination,
) -> Result<DataPage<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError> {
let response = self
.execute(requests::agenda_item::get::Request {
body_id_or_alias: body_id.into(),
meeting_id,
pagination,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_meeting_by_id_agenda_item_post(
&self,
body_id: BodyId,
meeting_id: MeetingId,
new_agenda_item: AgendaItem,
) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError> {
Ok(self
.execute(requests::agenda_item::post::Request {
body_id_or_alias: body_id.into(),
meeting_id,
payload: types::agenda_item::post::RequestBody(new_agenda_item),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_get(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError> {
let response = self
.execute(requests::agenda_item::by_id::get::Request {
body_id_or_alias: body_id.into(),
meeting_id,
agenda_item_id,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_patch(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
update_agenda_item: UpdateAgendaItem,
) -> Result<DataItem<AgendaItemParentId, AgendaItemId, AgendaItem>, Self::ClientError> {
let response = self
.execute(requests::agenda_item::by_id::patch::Request {
body_id_or_alias: body_id.into(),
meeting_id,
agenda_item_id,
payload: types::agenda_item::by_id::patch::RequestBody(update_agenda_item),
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_consultation_get(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError> {
let response = self
.execute(requests::agenda_item::by_id::consultation::get::Request {
body_id_or_alias: body_id.into(),
meeting_id,
agenda_item_id,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_consultation_put(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
consultation: Consultation,
) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError> {
let response = self
.execute(requests::agenda_item::by_id::consultation::put::Request {
body_id_or_alias: body_id.into(),
meeting_id,
agenda_item_id,
payload: types::agenda_item::by_id::consultation::put::RequestBody(consultation),
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_meeting_by_id_agenda_item_by_id_consultation_patch(
&self,
body_id: BodyId,
meeting_id: MeetingId,
agenda_item_id: AgendaItemId,
update_consultation: UpdateConsultation,
) -> Result<DataItem<ConsultationParentId, AgendaItemId, Consultation>, Self::ClientError> {
let response = self
.execute(requests::agenda_item::by_id::consultation::patch::Request {
body_id_or_alias: body_id.into(),
meeting_id,
agenda_item_id,
payload: types::agenda_item::by_id::consultation::patch::RequestBody(
update_consultation,
),
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_organization_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>
{
Ok(self
.execute(requests::organization::get::Request {
body_id_or_alias: body_id.into(),
pagination,
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_organization_post(
&self,
body_id: BodyId,
new_organization: Organization,
) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>
{
Ok(self
.execute(requests::organization::post::Request {
body_id_or_alias: body_id.into(),
payload: types::organization::post::RequestBody(new_organization),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_organization_by_id_get(
&self,
body_id: BodyId,
organization_id: OrganizationId,
) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>
{
let response = self
.execute(requests::organization::by_id::get::Request {
body_id_or_alias: body_id.into(),
organization_id,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_organization_by_id_patch(
&self,
body_id: BodyId,
organization_id: OrganizationId,
update_organization: UpdateOrganization,
) -> Result<DataItem<OrganizationParentId, OrganizationId, Organization>, Self::ClientError>
{
let response = self
.execute(requests::organization::by_id::patch::Request {
body_id_or_alias: body_id.into(),
organization_id,
payload: organization::by_id::patch::RequestBody(update_organization),
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_organization_by_id_membership_get(
&self,
body_id: BodyId,
organization_id: OrganizationId,
pagination: Pagination,
) -> Result<DataPage<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>
{
let response = self
.execute(requests::organization::by_id::membership::get::Request {
body_id_or_alias: body_id.into(),
organization_id,
pagination,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_organization_by_id_membership_post(
&self,
body_id: BodyId,
organization_id: OrganizationId,
new_membership: organization::by_id::membership::NewMembership,
) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>
{
Ok(self
.execute(requests::organization::by_id::membership::post::Request {
body_id_or_alias: body_id.into(),
organization_id,
payload: types::organization::by_id::membership::post::RequestBody(new_membership),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_organization_by_id_membership_by_id_get(
&self,
body_id: BodyId,
organization_id: OrganizationId,
membership_id: MembershipId,
) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>
{
let response = self
.execute(
requests::organization::by_id::membership::by_id::get::Request {
body_id_or_alias: body_id.into(),
organization_id,
membership_id,
},
)
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_organization_by_id_membership_by_id_patch(
&self,
body_id: BodyId,
organization_id: OrganizationId,
membership_id: MembershipId,
update_membership: UpdateMembership,
) -> Result<DataItem<OrganizationMembershipParentId, MembershipId, Membership>, Self::ClientError>
{
let response = self
.execute(
requests::organization::by_id::membership::by_id::patch::Request {
body_id_or_alias: body_id.into(),
organization_id,
membership_id,
payload: organization::by_id::membership::by_id::patch::RequestBody(
update_membership,
),
},
)
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_person_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<PersonParentId, PersonId, Person>, Self::ClientError> {
Ok(self
.execute(requests::person::get::Request {
body_id_or_alias: body_id.into(),
pagination,
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_person_post(
&self,
body_id: BodyId,
new_person: Person,
) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError> {
Ok(self
.execute(requests::person::post::Request {
body_id_or_alias: body_id.into(),
payload: types::person::post::RequestBody(new_person),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_person_by_id_get(
&self,
body_id: BodyId,
person_id: PersonId,
) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError> {
let response = self
.execute(requests::person::by_id::get::Request {
body_id_or_alias: body_id.into(),
person_id,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_person_by_id_patch(
&self,
body_id: BodyId,
person_id: PersonId,
update_person: UpdatePerson,
) -> Result<DataItem<PersonParentId, PersonId, Person>, Self::ClientError> {
let response = self
.execute(requests::person::by_id::patch::Request {
body_id_or_alias: body_id.into(),
person_id,
payload: person::by_id::patch::RequestBody(update_person),
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_person_by_id_membership_get(
&self,
body_id: BodyId,
person_id: PersonId,
pagination: Pagination,
) -> Result<DataPage<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>
{
let response = self
.execute(requests::person::by_id::membership::get::Request {
body_id_or_alias: body_id.into(),
person_id,
pagination,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_person_by_id_membership_post(
&self,
body_id: BodyId,
person_id: PersonId,
new_membership: person::by_id::membership::NewMembership,
) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>
{
Ok(self
.execute(requests::person::by_id::membership::post::Request {
body_id_or_alias: body_id.into(),
person_id,
payload: types::person::by_id::membership::post::RequestBody(new_membership),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_person_by_id_membership_by_id_get(
&self,
body_id: BodyId,
person_id: PersonId,
membership_id: MembershipId,
) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>
{
let response = self
.execute(requests::person::by_id::membership::by_id::get::Request {
body_id_or_alias: body_id.into(),
person_id,
membership_id,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_person_by_id_membership_by_id_patch(
&self,
body_id: BodyId,
person_id: PersonId,
membership_id: MembershipId,
update_membership: UpdateMembership,
) -> Result<DataItem<PersonMembershipParentId, MembershipId, Membership>, Self::ClientError>
{
let response = self
.execute(requests::person::by_id::membership::by_id::patch::Request {
body_id_or_alias: body_id.into(),
person_id,
membership_id,
payload: person::by_id::membership::by_id::patch::RequestBody(update_membership),
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_membership_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<MembershipParentId, MembershipId, Membership>, Self::ClientError> {
let response = self
.execute(requests::membership::get::Request {
body_id_or_alias: body_id.into(),
pagination,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_membership_post(
&self,
body_id: BodyId,
new_membership: Membership,
) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError> {
Ok(self
.execute(requests::membership::post::Request {
body_id_or_alias: body_id.into(),
payload: membership::post::RequestBody(new_membership),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_membership_by_id_get(
&self,
body_id: BodyId,
membership_id: MembershipId,
) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError> {
let response = self
.execute(requests::membership::by_id::get::Request {
body_id_or_alias: body_id.into(),
membership_id,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_membership_by_id_patch(
&self,
body_id: BodyId,
membership_id: MembershipId,
update_membership: UpdateMembership,
) -> Result<DataItem<MembershipParentId, MembershipId, Membership>, Self::ClientError> {
let response = self
.execute(requests::membership::by_id::patch::Request {
body_id_or_alias: body_id.into(),
membership_id,
payload: membership::by_id::patch::RequestBody(update_membership),
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_location_get(
&self,
body_id: BodyId,
pagination: Pagination,
) -> Result<DataPage<LocationParentId, LocationId, Location>, Self::ClientError> {
let response = self
.execute(requests::location::get::Request {
body_id_or_alias: body_id.into(),
pagination,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_location_post(
&self,
body_id: BodyId,
new_location: Location,
) -> Result<DataItem<LocationParentId, LocationId, Location>, Self::ClientError> {
Ok(self
.execute(requests::location::post::Request {
body_id_or_alias: body_id.into(),
payload: types::location::post::RequestBody(new_location),
})
.await?
.0
.0)
}
async fn body_by_id_or_alias_location_by_id_get(
&self,
body_id: BodyId,
location_id: LocationId,
) -> Result<DataItem<LocationParentId, LocationId, Location>, Self::ClientError> {
let response = self
.execute(requests::location::by_id::get::Request {
body_id_or_alias: body_id.into(),
location_id,
})
.await?;
Ok(response.0.0)
}
async fn body_by_id_or_alias_location_by_id_patch(
&self,
body_id: BodyId,
location_id: LocationId,
update_location: UpdateLocation,
) -> Result<DataItem<LocationParentId, LocationId, Location>, Self::ClientError> {
let response = self
.execute(requests::location::by_id::patch::Request {
body_id_or_alias: body_id.into(),
location_id,
payload: types::location::by_id::patch::RequestBody(update_location),
})
.await?;
Ok(response.0.0)
}
async fn me_profile_get(&self) -> Result<types::me::profile::Profile, Self::ClientError> {
Ok(self.execute(requests::me::profile::get::Request).await?.0.0)
}
async fn me_profile_patch(
&self,
update_profile: UpdateProfile,
) -> Result<Profile, Self::ClientError> {
Ok(self
.execute(requests::me::profile::patch::Request {
payload: types::me::profile::patch::RequestBody(update_profile),
})
.await?
.0
.0)
}
}