You've already forked AstralRinth
forked from didirus/AstralRinth
Merge branch 'fix-description-cache' of https://github.com/modrinth/labrinth into fix-description-cache
This commit is contained in:
@@ -875,6 +875,19 @@
|
||||
"nullable": []
|
||||
}
|
||||
},
|
||||
"3f2f05653552ce8c1be95ce0a922ab41f52f40f8ff6c91c6621481102c8f35e3": {
|
||||
"query": "\n INSERT INTO game_versions_versions (game_version_id, joining_version_id)\n VALUES ($1, $2)\n ",
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"parameters": {
|
||||
"Left": [
|
||||
"Int4",
|
||||
"Int8"
|
||||
]
|
||||
},
|
||||
"nullable": []
|
||||
}
|
||||
},
|
||||
"42e072309779598d0c213280dd8052d1b4889cb24ef5204ca13b74f693b94328": {
|
||||
"query": "\n SELECT user_id FROM team_members tm\n INNER JOIN mods ON mods.team_id = tm.team_id\n WHERE mods.id = $1\n ",
|
||||
"describe": {
|
||||
@@ -1254,6 +1267,18 @@
|
||||
"nullable": []
|
||||
}
|
||||
},
|
||||
"507314fdcacaa3c7751738c9d0baee2b90aec719b6b203f922824eced5ea8369": {
|
||||
"query": "\n DELETE FROM game_versions_versions WHERE joining_version_id = $1\n ",
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"parameters": {
|
||||
"Left": [
|
||||
"Int8"
|
||||
]
|
||||
},
|
||||
"nullable": []
|
||||
}
|
||||
},
|
||||
"50a15c443b01cefc478a3b5ca03bb9b279782d74bcf42ee4e7c06581457c130d": {
|
||||
"query": "\n INSERT INTO versions (\n id, mod_id, author_id, name, version_number,\n changelog_url, date_published,\n downloads, release_channel, accepted, featured\n )\n VALUES (\n $1, $2, $3, $4, $5,\n $6, $7,\n $8, $9,\n $10, $11\n )\n ",
|
||||
"describe": {
|
||||
@@ -3826,6 +3851,18 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"fa911efc808e726c13659d3ce6baf61dc562e6f1e73fd65537a4ab1dad17120e": {
|
||||
"query": "\n DELETE FROM downloads\n WHERE downloads.version_id = $1\n ",
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"parameters": {
|
||||
"Left": [
|
||||
"Int8"
|
||||
]
|
||||
},
|
||||
"nullable": []
|
||||
}
|
||||
},
|
||||
"fb6178b27856ff583039a974173efe5d6be4e347b6cc1d4904cf750a40d1b77f": {
|
||||
"query": "\n SELECT dependency_id id FROM dependencies\n WHERE dependent_id = $1\n ",
|
||||
"describe": {
|
||||
|
||||
@@ -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!(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -27,6 +27,7 @@ pub async fn team_members_get(
|
||||
let team_members: Vec<crate::models::teams::TeamMember> = 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),
|
||||
@@ -43,6 +44,7 @@ pub async fn team_members_get(
|
||||
for team_member in members_data {
|
||||
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,
|
||||
@@ -296,7 +298,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 {
|
||||
|
||||
@@ -175,6 +175,7 @@ pub async fn teams(
|
||||
let team_members: Vec<crate::models::teams::TeamMember> = 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 {
|
||||
|
||||
@@ -361,6 +361,43 @@ pub async fn version_edit(
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(game_versions) = &new_version.game_versions {
|
||||
sqlx::query!(
|
||||
"
|
||||
DELETE FROM game_versions_versions WHERE joining_version_id = $1
|
||||
",
|
||||
id as database::models::ids::VersionId,
|
||||
)
|
||||
.execute(&mut *transaction)
|
||||
.await
|
||||
.map_err(|e| ApiError::DatabaseError(e.into()))?;
|
||||
|
||||
for game_version in game_versions {
|
||||
let game_version_id = database::models::categories::GameVersion::get_id(
|
||||
&game_version.0,
|
||||
&mut *transaction,
|
||||
)
|
||||
.await?
|
||||
.ok_or_else(|| {
|
||||
ApiError::InvalidInputError(
|
||||
"No database entry for game version provided.".to_string(),
|
||||
)
|
||||
})?;
|
||||
|
||||
sqlx::query!(
|
||||
"
|
||||
INSERT INTO game_versions_versions (game_version_id, joining_version_id)
|
||||
VALUES ($1, $2)
|
||||
",
|
||||
game_version_id as database::models::ids::GameVersionId,
|
||||
id as database::models::ids::VersionId,
|
||||
)
|
||||
.execute(&mut *transaction)
|
||||
.await
|
||||
.map_err(|e| ApiError::DatabaseError(e.into()))?;
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(loaders) = &new_version.loaders {
|
||||
sqlx::query!(
|
||||
"
|
||||
|
||||
Reference in New Issue
Block a user