This commit is contained in:
Geometrically
2021-03-26 22:10:30 -07:00
committed by GitHub
parent b5bf627fb1
commit 5cab65d197
2 changed files with 30 additions and 11 deletions

7
.idea/vcs.xml generated
View File

@@ -1,5 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GithubSharedProjectSettings">
<option name="branchProtectionPatterns">
<list>
<option value="master" />
</list>
</option>
</component>
<component name="VcsDirectoryMappings"> <component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" /> <mapping directory="$PROJECT_DIR$" vcs="Git" />
</component> </component>

View File

@@ -71,21 +71,33 @@ pub async fn version_list(
// Attempt to populate versions with "auto featured" versions // Attempt to populate versions with "auto featured" versions
if response.is_empty() && !versions.is_empty() && filters.featured.unwrap_or(false) { if response.is_empty() && !versions.is_empty() && filters.featured.unwrap_or(false) {
database::models::categories::GameVersion::list_filter(None, Some(true), &**pool) let loaders = database::models::categories::Loader::list(&**pool).await?;
.await? let game_versions =
.into_iter() database::models::categories::GameVersion::list_filter(None, Some(true), &**pool)
.for_each(|major_version| { .await?;
versions
.iter() let mut joined_filters = Vec::new();
.find(|version| version.game_versions.contains(&major_version)) for game_version in &game_versions {
.map(|version| response.push(convert_version(version.clone()))) for loader in &loaders {
.unwrap_or(()); joined_filters.push((game_version, loader))
}); }
}
joined_filters.into_iter().for_each(|filter| {
versions
.iter()
.find(|version| {
version.game_versions.contains(&filter.0)
&& version.loaders.contains(&filter.1)
})
.map(|version| response.push(convert_version(version.clone())))
.unwrap_or(());
});
if response.is_empty() { if response.is_empty() {
versions versions
.into_iter() .into_iter()
.for_each(|version| response.push(convert_version(version.clone()))); .for_each(|version| response.push(convert_version(version)));
} }
} }