Skip to content

Commit fb146a2

Browse files
authored
Merge pull request #1117 from amvanbaren/extension-version-json-complexity
Move replacement JSON to own method
2 parents 6751ab2 + c251930 commit fb146a2

File tree

1 file changed

+31
-44
lines changed

1 file changed

+31
-44
lines changed

server/src/main/java/org/eclipse/openvsx/LocalRegistryService.java

Lines changed: 31 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -846,21 +846,7 @@ public ExtensionJson toExtensionVersionJson(ExtensionVersion extVersion, String
846846
var latestPreRelease = repositories.findLatestVersionForAllUrls(extension, targetPlatform, true, onlyActive);
847847

848848
var json = extVersion.toExtensionJson();
849-
if(extension.getReplacement() != null) {
850-
var replacementId = extension.getReplacement().getId();
851-
var replacement = repositories.findLatestReplacement(replacementId, targetPlatform, false, onlyActive);
852-
if(replacement != null) {
853-
var displayName = StringUtils.isNotEmpty(replacement.getDisplayName())
854-
? replacement.getDisplayName()
855-
: replacement.getExtension().getName();
856-
857-
var replacementJson = new ExtensionReplacementJson();
858-
replacementJson.setUrl(UrlUtil.createApiUrl(webuiUrl, "extension", replacement.getExtension().getNamespace().getName(), replacement.getExtension().getName()));
859-
replacementJson.setDisplayName(displayName);
860-
json.setReplacement(replacementJson);
861-
}
862-
}
863-
849+
json.setReplacement(toReplacementJson(extension, targetPlatform, onlyActive, true));
864850
json.setPreview(latest != null && latest.isPreview());
865851
var versionAlias = new ArrayList<String>();
866852
if (latest != null && extVersion.getVersion().equals(latest.getVersion()))
@@ -932,20 +918,7 @@ public ExtensionJson toExtensionVersionJson(
932918
json.setReviewsUrl(createApiReviewsUrl(serverUrl, json.getNamespace(), json.getName()));
933919

934920
var extension = extVersion.getExtension();
935-
if(extension.getReplacement() != null) {
936-
var replacementId = extension.getReplacement().getId();
937-
var replacement = repositories.findLatestReplacement(replacementId, targetPlatformParam, false, true);
938-
if(replacement != null) {
939-
var displayName = StringUtils.isNotEmpty(replacement.getDisplayName())
940-
? replacement.getDisplayName()
941-
: replacement.getExtension().getName();
942-
943-
var replacementJson = new ExtensionReplacementJson();
944-
replacementJson.setUrl(UrlUtil.createApiUrl(serverUrl, "api", replacement.getExtension().getNamespace().getName(), replacement.getExtension().getName()));
945-
replacementJson.setDisplayName(displayName);
946-
json.setReplacement(replacementJson);
947-
}
948-
}
921+
json.setReplacement(toReplacementJson(extension, targetPlatformParam, true, false));
949922

950923
var versionAlias = new ArrayList<String>(2);
951924
if (extVersion.equals(latest)) {
@@ -1024,21 +997,7 @@ public ExtensionJson toExtensionVersionJsonV2(
1024997
json.setUrl(createApiVersionUrl(serverUrl, json));
1025998

1026999
var extension = extVersion.getExtension();
1027-
if(extension.getReplacement() != null) {
1028-
var replacementId = extension.getReplacement().getId();
1029-
var replacement = repositories.findLatestReplacement(replacementId, targetPlatformParam, false, true);
1030-
if(replacement != null) {
1031-
var displayName = StringUtils.isNotEmpty(replacement.getDisplayName())
1032-
? replacement.getDisplayName()
1033-
: replacement.getExtension().getName();
1034-
1035-
var replacementJson = new ExtensionReplacementJson();
1036-
replacementJson.setUrl(UrlUtil.createApiUrl(serverUrl, "api", replacement.getExtension().getNamespace().getName(), replacement.getExtension().getName()));
1037-
replacementJson.setDisplayName(displayName);
1038-
1039-
json.setReplacement(replacementJson);
1040-
}
1041-
}
1000+
json.setReplacement(toReplacementJson(extension, targetPlatformParam, true, false));
10421001

10431002
var versionAlias = new ArrayList<String>(2);
10441003
if (extVersion.equals(latest)) {
@@ -1094,6 +1053,34 @@ public ExtensionJson toExtensionVersionJsonV2(
10941053
return json;
10951054
}
10961055

1056+
private ExtensionReplacementJson toReplacementJson(Extension extension, String targetPlatform, boolean onlyActive, boolean webui) {
1057+
if(extension.getReplacement() == null) {
1058+
return null;
1059+
}
1060+
1061+
var replacementId = extension.getReplacement().getId();
1062+
var replacement = repositories.findLatestReplacement(replacementId, targetPlatform, false, onlyActive);
1063+
if(replacement == null) {
1064+
return null;
1065+
}
1066+
1067+
var baseUrl = webui ? webuiUrl : UrlUtil.getBaseUrl();
1068+
var segments = new String[]{
1069+
webui ? "extension" : "api",
1070+
replacement.getExtension().getNamespace().getName(),
1071+
replacement.getExtension().getName()
1072+
};
1073+
1074+
var displayName = StringUtils.isNotEmpty(replacement.getDisplayName())
1075+
? replacement.getDisplayName()
1076+
: replacement.getExtension().getName();
1077+
1078+
var json = new ExtensionReplacementJson();
1079+
json.setUrl(UrlUtil.createApiUrl(baseUrl, segments));
1080+
json.setDisplayName(displayName);
1081+
return json;
1082+
}
1083+
10971084
private boolean isVerified(ExtensionVersion extVersion) {
10981085
if (extVersion.getPublishedWith() == null) {
10991086
return false;

0 commit comments

Comments
 (0)