Skip to content

Commit cb0c622

Browse files
committed
Corrected fallback handling for existing cases
1 parent 084c732 commit cb0c622

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

src/main/java/me/itzg/helpers/modrinth/ModrinthApiClient.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,13 @@ public Mono<List<Version>> getVersionsForProject(String projectIdOrSlug,
183183
@Nullable Loader loader, String gameVersion
184184
) {
185185
return getJustVersionsForProject(projectIdOrSlug, gameVersion,
186-
loader != null ? Collections.singletonList(loader.toString()) : null
186+
loader != null ? Collections.singletonList(loader.toString()) : null,
187+
false
187188
)
188189
.switchIfEmpty(
189190
getJustVersionsForProject(projectIdOrSlug, gameVersion,
190-
expandCompatibleLoaders(loader)
191+
expandCompatibleLoaders(loader),
192+
true
191193
)
192194
)
193195
.switchIfEmpty(
@@ -199,11 +201,13 @@ public Mono<List<Version>> getVersionsForProject(String projectIdOrSlug,
199201
/**
200202
* @return the non-empty list of versions or an empty mono
201203
*/
202-
private Mono<List<Version>> getJustVersionsForProject(String projectIdOrSlug, String gameVersion,
203-
Collection<String> loaderNames
204+
private Mono<List<Version>> getJustVersionsForProject(
205+
String projectIdOrSlug, String gameVersion,
206+
Collection<String> loaderNames,
207+
boolean skipEmptyLoaders
204208
) {
205209
return
206-
loaderNames == null || loaderNames.isEmpty() ?
210+
skipEmptyLoaders && (loaderNames == null || loaderNames.isEmpty()) ?
207211
Mono.empty() :
208212
sharedFetch.fetch(
209213
uriBuilder.resolve("/v2/project/{id|slug}/version",

src/test/java/me/itzg/helpers/modrinth/ModrinthCommandTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
import com.github.tomakehurst.wiremock.extension.responsetemplating.ResponseTemplateTransformer;
1515
import com.github.tomakehurst.wiremock.junit5.WireMockExtension;
1616
import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder;
17-
import java.nio.file.Path;
1817
import java.nio.file.Files;
18+
import java.nio.file.Path;
1919
import java.util.Arrays;
2020
import java.util.function.Consumer;
2121
import me.itzg.helpers.LatchingExecutionExceptionHandler;
@@ -167,7 +167,8 @@ void failsWhenNoDependenciesForModLoader(@TempDir Path tempDir) throws JsonProce
167167
.put("project_id", requiredDepProjectId)
168168
.put("dependency_type", "required");
169169
});
170-
stubVersionRequestEmptyResponse(requiredDepProjectId);
170+
stubVersionRequestEmptyResponse(requiredDepProjectId, "paper");
171+
stubVersionRequestEmptyResponse(requiredDepProjectId, "spigot");
171172
stubGetProject(requiredDepProjectId, new Project().setProjectType(ProjectType.resourcepack));
172173

173174
stubDownload();
@@ -462,7 +463,7 @@ private void stubVersionRequest(String projectId, String versionId, Consumer<Arr
462463
depsAdder.accept(dependenciesArray);
463464

464465
stubFor(get(urlPathEqualTo("/v2/project/" + projectId + "/version"))
465-
.withQueryParam("loaders", equalTo("[\"paper\",\"spigot\"]"))
466+
.withQueryParam("loaders", equalTo("[\"paper\"]"))
466467
.withQueryParam("game_versions", equalTo("[\"1.21.1\"]"))
467468
.willReturn(aResponse()
468469
.withHeader("Content-Type", "application/json")
@@ -471,11 +472,11 @@ private void stubVersionRequest(String projectId, String versionId, Consumer<Arr
471472
);
472473
}
473474

474-
private void stubVersionRequestEmptyResponse(String projectId) {
475+
private void stubVersionRequestEmptyResponse(String projectId, String loader) {
475476
final ArrayNode versionResp = objectMapper.createArrayNode();
476477

477478
stubFor(get(urlPathEqualTo("/v2/project/" + projectId + "/version"))
478-
.withQueryParam("loaders", equalTo("[\"paper\",\"spigot\"]"))
479+
.withQueryParam("loaders", equalTo("[\"" + loader + "\"]"))
479480
.withQueryParam("game_versions", equalTo("[\"1.21.1\"]"))
480481
.willReturn(aResponse()
481482
.withHeader("Content-Type", "application/json")

0 commit comments

Comments
 (0)