Add /family/{id}/info route

This commit is contained in:
2023-06-21 16:36:46 +02:00
parent 053f08f927
commit 381a4797e4
7 changed files with 111 additions and 6 deletions

View File

@ -70,7 +70,7 @@ pub async fn is_member(family_id: FamilyID, user_id: UserID) -> anyhow::Result<b
}
/// Get the memberships of a user
pub async fn get_user_memberships(user_id: UserID) -> anyhow::Result<Vec<FamilyMembership>> {
pub async fn get_user_family_memberships(user_id: UserID) -> anyhow::Result<Vec<FamilyMembership>> {
db_connection::execute(|conn| {
families_memberships::table
.filter(families_memberships::dsl::user_id.eq(user_id.0))
@ -78,6 +78,29 @@ pub async fn get_user_memberships(user_id: UserID) -> anyhow::Result<Vec<FamilyM
})
}
/// Get information about a membership of a user
pub async fn get_membership(family_id: FamilyID, user_id: UserID) -> anyhow::Result<Membership> {
db_connection::execute(|conn| {
memberships::table
.filter(memberships::dsl::user_id.eq(user_id.0))
.filter(memberships::dsl::family_id.eq(family_id.0))
.get_result(conn)
})
}
/// Get information about a membership of a user, joined with family information
pub async fn get_family_membership(
family_id: FamilyID,
user_id: UserID,
) -> anyhow::Result<FamilyMembership> {
db_connection::execute(|conn| {
families_memberships::table
.filter(families_memberships::dsl::user_id.eq(user_id.0))
.filter(families_memberships::dsl::family_id.eq(family_id.0))
.get_result(conn)
})
}
/// Remove a membership to a family
pub async fn remove_membership(_family_id: FamilyID, _user_id: UserID) {
todo!()