@@ -141,17 +141,33 @@ pub async fn get_mod_updates(
141
141
let platforms: Vec < VerPlatform > = vec ! [ ] ;
142
142
143
143
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 ?;
145
145
146
146
for i in & mut result {
147
147
if let Some ( replacement) = replacements. get ( & i. id ) {
148
148
let mut clone = replacement. clone ( ) ;
149
149
clone. download_link = create_download_link ( & data. app_url , & clone. id , & clone. version ) ;
150
150
i. replacement = Some ( clone) ;
151
+ replacements. remove_entry ( & i. id ) ;
151
152
}
152
153
i. download_link = create_download_link ( & data. app_url , & i. id , & i. version ) ;
153
154
}
154
155
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
+
155
171
Ok ( web:: Json ( ApiResponse {
156
172
error : "" . into ( ) ,
157
173
payload : result,
0 commit comments