Skip to content

Commit a2168b3

Browse files
committed
add replacements for mods that aren't on index
1 parent 4f2eac6 commit a2168b3

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/endpoints/mods.rs

+17-1
Original file line numberDiff line numberDiff line change
@@ -141,17 +141,33 @@ pub async fn get_mod_updates(
141141
let platforms: Vec<VerPlatform> = vec![];
142142

143143
let mut result: Vec<ModUpdate> = Mod::get_updates(&ids, platforms, &mut pool).await?;
144-
let replacements = Incompatibility::get_supersedes_for(&ids, &mut pool).await?;
144+
let mut replacements = Incompatibility::get_supersedes_for(&ids, &mut pool).await?;
145145

146146
for i in &mut result {
147147
if let Some(replacement) = replacements.get(&i.id) {
148148
let mut clone = replacement.clone();
149149
clone.download_link = create_download_link(&data.app_url, &clone.id, &clone.version);
150150
i.replacement = Some(clone);
151+
replacements.remove_entry(&i.id);
151152
}
152153
i.download_link = create_download_link(&data.app_url, &i.id, &i.version);
153154
}
154155

156+
for i in replacements {
157+
let mut replacement = i.1.clone();
158+
replacement.download_link =
159+
create_download_link(&data.app_url, &replacement.id, &replacement.version);
160+
result.push(ModUpdate {
161+
id: i.0.clone(),
162+
version: "1.0.0".to_string(),
163+
mod_version_id: 0,
164+
download_link: replacement.download_link.clone(),
165+
replacement: Some(replacement),
166+
dependencies: vec![],
167+
incompatibilities: vec![],
168+
});
169+
}
170+
155171
Ok(web::Json(ApiResponse {
156172
error: "".into(),
157173
payload: result,

0 commit comments

Comments
 (0)