From 59c269c8d0f433cec18edfb5910df5710b00d512 Mon Sep 17 00:00:00 2001 From: Wyatt Verchere Date: Sat, 6 Jan 2024 22:04:13 -0800 Subject: [PATCH] Fixes game versions v2 display (#827) * fixes game versions display * reverses from version route --- src/database/models/project_item.rs | 3 --- src/models/v2/projects.rs | 17 +++++++++-------- src/routes/v3/versions.rs | 1 + 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/database/models/project_item.rs b/src/database/models/project_item.rs index 3d3635d0b..0334f578a 100644 --- a/src/database/models/project_item.rs +++ b/src/database/models/project_item.rs @@ -765,9 +765,6 @@ impl Project { } ).try_collect().await?; - // TODO: Possible improvements to look into: - // - use multiple queries instead of CTES (for cleanliness?) - // - repeated joins to mods in separate CTEs- perhaps 1 CTE for mods and use later (in mods_gallery_json, mods_donations_json, etc.) let db_projects: Vec = sqlx::query!( " SELECT m.id id, m.name name, m.summary summary, m.downloads downloads, m.follows follows, diff --git a/src/models/v2/projects.rs b/src/models/v2/projects.rs index f9c2f4a92..3c8d0a449 100644 --- a/src/models/v2/projects.rs +++ b/src/models/v2/projects.rs @@ -104,15 +104,16 @@ impl LegacyProject { let mut loaders = data.loaders; - if let Some(versions_item) = versions_item { - game_versions = versions_item - .version_fields - .iter() - .find(|f| f.field_name == "game_versions") - .and_then(|f| MinecraftGameVersion::try_from_version_field(f).ok()) - .map(|v| v.into_iter().map(|v| v.version).collect()) - .unwrap_or(Vec::new()); + game_versions = data + .fields + .get("game_versions") + .unwrap_or(&Vec::new()) + .iter() + .filter_map(|v| v.as_str()) + .map(|v| v.to_string()) + .collect(); + if let Some(versions_item) = versions_item { // Extract side types from remaining fields (singleplayer, client_only, etc) let fields = versions_item .version_fields diff --git a/src/routes/v3/versions.rs b/src/routes/v3/versions.rs index ad34f3e9f..fc9acb1ea 100644 --- a/src/routes/v3/versions.rs +++ b/src/routes/v3/versions.rs @@ -824,6 +824,7 @@ pub async fn version_list( } response.sort(); + response.reverse(); response.dedup_by(|a, b| a.inner.id == b.inner.id); let response = filter_visible_versions(response, &user_option, &pool, &redis).await?;