Skip to content

Commit 2d7f3ef

Browse files
committed
for Search() based operations ADO can't handle eq true
1 parent 5f6cc49 commit 2d7f3ef

File tree

1 file changed

+68
-18
lines changed

1 file changed

+68
-18
lines changed

src/code/V2ServerAPICalls.cs

Lines changed: 68 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -917,16 +917,26 @@ private string FindAllFromTypeEndPoint(bool includePrerelease, bool isSearchingM
917917
}
918918

919919
// JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
920+
// It also deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
920921
if (_isJFrogRepo) {
921922
queryBuilder.SearchTerm = "''";
922-
}
923923

924-
if (includePrerelease) {
925-
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
926-
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
927-
} else {
928-
filterBuilder.AddCriterion("IsLatestVersion eq true");
924+
if (includePrerelease) {
925+
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
926+
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
927+
} else {
928+
filterBuilder.AddCriterion("IsLatestVersion eq true");
929+
}
930+
}
931+
else {
932+
if (includePrerelease) {
933+
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
934+
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
935+
} else {
936+
filterBuilder.AddCriterion("IsLatestVersion");
937+
}
929938
}
939+
930940
var requestUrlV2 = $"{Repository.Uri}{typeEndpoint}/Search()?{queryBuilder.BuildQueryString()}";
931941
return HttpRequestCall(requestUrlV2, out errRecord);
932942
}
@@ -956,17 +966,33 @@ private string FindTagFromEndpoint(string[] tags, bool includePrerelease, bool i
956966
queryBuilder.AdditionalParameters["$orderby"] = "Id desc";
957967
}
958968

959-
// JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
960-
if (_isJFrogRepo) {
961-
queryBuilder.SearchTerm = "''";
962-
}
963-
964969
if (includePrerelease) {
965970
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
966-
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
971+
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
967972
} else {
968-
filterBuilder.AddCriterion("IsLatestVersion eq true");
969-
}
973+
filterBuilder.AddCriterion("IsLatestVersion");
974+
}
975+
976+
// // JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
977+
// // It also deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
978+
// if (_isJFrogRepo) {
979+
// queryBuilder.SearchTerm = "''";
980+
981+
// if (includePrerelease) {
982+
// queryBuilder.AdditionalParameters["includePrerelease"] = "true";
983+
// filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
984+
// } else {
985+
// filterBuilder.AddCriterion("IsLatestVersion eq true");
986+
// }
987+
// }
988+
// else {
989+
// if (includePrerelease) {
990+
// queryBuilder.AdditionalParameters["includePrerelease"] = "true";
991+
// filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
992+
// } else {
993+
// filterBuilder.AddCriterion("IsLatestVersion");
994+
// }
995+
// }
970996

971997
filterBuilder.AddCriterion($"substringof('PS{(isSearchingModule ? "Module" : "Script")}', Tags) eq true");
972998

@@ -1040,11 +1066,23 @@ private string FindNameGlobbing(string packageName, ResourceType type, bool incl
10401066
queryBuilder.AdditionalParameters["$orderby"] = "Id desc";
10411067
}
10421068

1069+
// JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
1070+
// It also deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
10431071
if (includePrerelease) {
10441072
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
1045-
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
1073+
if (_isJFrogRepo) {
1074+
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
1075+
}
1076+
else {
1077+
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
1078+
}
10461079
} else {
1047-
filterBuilder.AddCriterion("IsLatestVersion eq true");
1080+
if (_isJFrogRepo) {
1081+
filterBuilder.AddCriterion("IsLatestVersion eq true");
1082+
}
1083+
else {
1084+
filterBuilder.AddCriterion("IsLatestVersion");
1085+
}
10481086
}
10491087

10501088
var names = packageName.Split(new char[] {'*'}, StringSplitOptions.RemoveEmptyEntries);
@@ -1134,11 +1172,23 @@ private string FindNameGlobbingWithTag(string packageName, string[] tags, Resour
11341172
queryBuilder.AdditionalParameters["$orderby"] = "Id desc";
11351173
}
11361174

1175+
// JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
1176+
// It also deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
11371177
if (includePrerelease) {
11381178
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
1139-
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
1179+
if (_isJFrogRepo) {
1180+
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
1181+
}
1182+
else {
1183+
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
1184+
}
11401185
} else {
1141-
filterBuilder.AddCriterion("IsLatestVersion eq true");
1186+
if (_isJFrogRepo) {
1187+
filterBuilder.AddCriterion("IsLatestVersion eq true");
1188+
}
1189+
else {
1190+
filterBuilder.AddCriterion("IsLatestVersion");
1191+
}
11421192
}
11431193

11441194
var names = packageName.Split(new char[] {'*'}, StringSplitOptions.RemoveEmptyEntries);

0 commit comments

Comments
 (0)