Skip to content

Commit 14bf795

Browse files
committed
fetch deps + incompats for replacements
1 parent a2168b3 commit 14bf795

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

src/types/models/incompatibility.rs

+23-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::types::models::dependency::ModVersionCompare;
55
use serde::{Deserialize, Serialize};
66
use sqlx::{PgConnection, Postgres, QueryBuilder};
77

8-
use super::dependency::ResponseDependency;
8+
use super::dependency::{Dependency, ResponseDependency};
99

1010
#[derive(sqlx::FromRow, Clone, Debug)]
1111
pub struct FetchedIncompatibility {
@@ -206,15 +206,35 @@ impl Incompatibility {
206206
Ok(r) => r,
207207
};
208208

209+
let ids: Vec<i32> = r.iter().map(|x| x.replacement_id).collect();
210+
let deps = Dependency::get_for_mod_versions(&ids, pool).await?;
211+
let incompat = Incompatibility::get_for_mod_versions(&ids, pool).await?;
212+
209213
for i in r.iter() {
210214
ret.entry(i.replaced.clone()).or_insert(Replacement {
211215
id: i.replacement.clone(),
212216
version: i.replacement_version.clone(),
213217
replacement_id: i.replacement_id,
214218
// Should be completed later
215219
download_link: "".to_string(),
216-
dependencies: vec![],
217-
incompatibilities: vec![],
220+
dependencies: deps
221+
.get(&i.replacement_id)
222+
.cloned()
223+
.unwrap_or_default()
224+
.into_iter()
225+
.map(|x| x.to_response())
226+
.collect(),
227+
incompatibilities: incompat
228+
.get(&i.replacement_id)
229+
.cloned()
230+
.unwrap_or_default()
231+
.into_iter()
232+
.filter(|x| {
233+
x.importance != IncompatibilityImportance::Superseded
234+
&& x.incompatibility_id != i.replacement
235+
})
236+
.map(|x| x.to_response())
237+
.collect(),
218238
});
219239
}
220240
Ok(ret)

0 commit comments

Comments
 (0)