diff --git a/src/database/models/version_item.rs b/src/database/models/version_item.rs index d335b1db..5cdb162e 100644 --- a/src/database/models/version_item.rs +++ b/src/database/models/version_item.rs @@ -235,6 +235,16 @@ impl Version { .execute(exec) .await?; + sqlx::query!( + " + DELETE FROM downloads + WHERE downloads.version_id = $1 + ", + id as VersionId, + ) + .execute(exec) + .await?; + use futures::TryStreamExt; let files = sqlx::query!( diff --git a/src/models/teams.rs b/src/models/teams.rs index a2306cb6..c2586eb8 100644 --- a/src/models/teams.rs +++ b/src/models/teams.rs @@ -45,6 +45,8 @@ impl Default for Permissions { /// A member of a team #[derive(Serialize, Deserialize, Clone)] pub struct TeamMember { + /// The ID of the team this team member is a member of + pub team_id: TeamId, /// The ID of the user associated with the member pub user_id: UserId, /// The role of the user in the team diff --git a/src/routes/teams.rs b/src/routes/teams.rs index b488ea38..47bab7d6 100644 --- a/src/routes/teams.rs +++ b/src/routes/teams.rs @@ -27,6 +27,7 @@ pub async fn team_members_get( let team_members: Vec = members_data .into_iter() .map(|data| crate::models::teams::TeamMember { + team_id: id, user_id: data.user_id.into(), role: data.role, permissions: Some(data.permissions), @@ -44,6 +45,7 @@ pub async fn team_members_get( if team_member.accepted { team_members.push( crate::models::teams::TeamMember { + team_id: id, user_id: team_member.user_id.into(), role: team_member.role, permissions: None, @@ -298,7 +300,7 @@ pub async fn remove_team_member( } }; - let delete_member = TeamMember::get_from_user_id(id, user_id, &**pool).await?; + let delete_member = TeamMember::get_from_user_id_pending(id, user_id, &**pool).await?; if let Some(delete_member) = delete_member { if delete_member.role == crate::models::teams::OWNER_ROLE { diff --git a/src/routes/users.rs b/src/routes/users.rs index a3a90c94..1939dee2 100644 --- a/src/routes/users.rs +++ b/src/routes/users.rs @@ -175,6 +175,7 @@ pub async fn teams( let team_members: Vec = results .into_iter() .map(|data| crate::models::teams::TeamMember { + team_id: data.team_id.into(), user_id: data.user_id.into(), role: data.role, permissions: if same_user {