Skip to content

Commit

Permalink
fetch deps + incompats for replacements
Browse files Browse the repository at this point in the history
  • Loading branch information
Fleeym committed May 31, 2024
1 parent a2168b3 commit 14bf795
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions src/types/models/incompatibility.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use crate::types::models::dependency::ModVersionCompare;
use serde::{Deserialize, Serialize};
use sqlx::{PgConnection, Postgres, QueryBuilder};

use super::dependency::ResponseDependency;
use super::dependency::{Dependency, ResponseDependency};

#[derive(sqlx::FromRow, Clone, Debug)]
pub struct FetchedIncompatibility {
Expand Down Expand Up @@ -206,15 +206,35 @@ impl Incompatibility {
Ok(r) => r,
};

let ids: Vec<i32> = r.iter().map(|x| x.replacement_id).collect();
let deps = Dependency::get_for_mod_versions(&ids, pool).await?;
let incompat = Incompatibility::get_for_mod_versions(&ids, pool).await?;

for i in r.iter() {
ret.entry(i.replaced.clone()).or_insert(Replacement {
id: i.replacement.clone(),
version: i.replacement_version.clone(),
replacement_id: i.replacement_id,
// Should be completed later
download_link: "".to_string(),
dependencies: vec![],
incompatibilities: vec![],
dependencies: deps
.get(&i.replacement_id)
.cloned()
.unwrap_or_default()
.into_iter()
.map(|x| x.to_response())
.collect(),
incompatibilities: incompat
.get(&i.replacement_id)
.cloned()
.unwrap_or_default()
.into_iter()
.filter(|x| {
x.importance != IncompatibilityImportance::Superseded
&& x.incompatibility_id != i.replacement
})
.map(|x| x.to_response())
.collect(),
});
}
Ok(ret)
Expand Down

0 comments on commit 14bf795

Please sign in to comment.