Skip to content
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 71 additions & 24 deletions src/code/V2ServerAPICalls.cs
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ public override FindResults FindName(string packageName, bool includePrerelease,
filterBuilder.AddCriterion($"Id eq '{packageName}'");
}

filterBuilder.AddCriterion(includePrerelease ? "IsAbsoluteLatestVersion" : "IsLatestVersion");
filterBuilder.AddCriterion(includePrerelease ? "IsAbsoluteLatestVersion eq true" : "IsLatestVersion eq true");
if (type != ResourceType.None) {
filterBuilder.AddCriterion(GetTypeFilterForRequest(type));
}
Expand Down Expand Up @@ -424,7 +424,7 @@ public override FindResults FindNameWithTag(string packageName, string[] tags, b
filterBuilder.AddCriterion($"Id eq '{packageName}'");
}

filterBuilder.AddCriterion(includePrerelease ? "IsAbsoluteLatestVersion" : "IsLatestVersion");
filterBuilder.AddCriterion(includePrerelease ? "IsAbsoluteLatestVersion eq true" : "IsLatestVersion eq true");
if (type != ResourceType.None) {
filterBuilder.AddCriterion(GetTypeFilterForRequest(type));
}
Expand Down Expand Up @@ -913,16 +913,26 @@ private string FindAllFromTypeEndPoint(bool includePrerelease, bool isSearchingM
}

// JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
// 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
if (_isJFrogRepo) {
queryBuilder.SearchTerm = "''";
}

if (includePrerelease) {
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
} else {
filterBuilder.AddCriterion("IsLatestVersion");
if (includePrerelease) {
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
} else {
filterBuilder.AddCriterion("IsLatestVersion eq true");
}
}
else {
if (includePrerelease) {
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
} else {
filterBuilder.AddCriterion("IsLatestVersion");
}
}

var requestUrlV2 = $"{Repository.Uri}{typeEndpoint}/Search()?{queryBuilder.BuildQueryString()}";
return HttpRequestCall(requestUrlV2, out errRecord);
}
Expand Down Expand Up @@ -952,16 +962,22 @@ private string FindTagFromEndpoint(string[] tags, bool includePrerelease, bool i
queryBuilder.AdditionalParameters["$orderby"] = "Id desc";
}

// JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
if (_isJFrogRepo) {
queryBuilder.SearchTerm = "''";
}

// JFrog/Artifactory deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
if (includePrerelease) {
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
if (_isJFrogRepo) {
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
}
else {
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
}
} else {
filterBuilder.AddCriterion("IsLatestVersion");
if (_isJFrogRepo) {
filterBuilder.AddCriterion("IsLatestVersion eq true");
}
else {
filterBuilder.AddCriterion("IsLatestVersion");
}
}

filterBuilder.AddCriterion($"substringof('PS{(isSearchingModule ? "Module" : "Script")}', Tags) eq true");
Expand Down Expand Up @@ -994,14 +1010,24 @@ private string FindCommandOrDscResource(string[] tags, bool includePrerelease, b
queryBuilder.AdditionalParameters["$orderby"] = "Id desc";
}

// JFrog/Artifactory deems 'IsLatestVersion eq true' and 'IsAbsoluteLatestVersion eq true' in the filter to be a bad request, so we use 'IsLatestVersion' or 'IsAbsoluteLatestVersion' only
if (includePrerelease) {
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
if (_isJFrogRepo) {
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
}
else {
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
}
} else {
filterBuilder.AddCriterion("IsLatestVersion");
if (_isJFrogRepo) {
filterBuilder.AddCriterion("IsLatestVersion eq true");
}
else {
filterBuilder.AddCriterion("IsLatestVersion");
}
}


// can only find from Modules endpoint
var tagPrefix = isSearchingForCommands ? "PSCommand_" : "PSDscResource_";

Expand Down Expand Up @@ -1036,14 +1062,24 @@ private string FindNameGlobbing(string packageName, ResourceType type, bool incl
queryBuilder.AdditionalParameters["$orderby"] = "Id desc";
}

// 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
if (includePrerelease) {
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
if (_isJFrogRepo) {
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
}
else {
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
}
} else {
filterBuilder.AddCriterion("IsLatestVersion");
if (_isJFrogRepo) {
filterBuilder.AddCriterion("IsLatestVersion eq true");
}
else {
filterBuilder.AddCriterion("IsLatestVersion");
}
}


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

if (names.Length == 0)
Expand Down Expand Up @@ -1131,14 +1167,25 @@ private string FindNameGlobbingWithTag(string packageName, string[] tags, Resour
queryBuilder.AdditionalParameters["$orderby"] = "Id desc";
}

// JFrog/Artifactory requires an empty search term to enumerate all packages in the feed
// 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
if (includePrerelease) {
queryBuilder.AdditionalParameters["includePrerelease"] = "true";
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
if (_isJFrogRepo) {
filterBuilder.AddCriterion("IsAbsoluteLatestVersion eq true");
}
else {
filterBuilder.AddCriterion("IsAbsoluteLatestVersion");
}
} else {
filterBuilder.AddCriterion("IsLatestVersion");
if (_isJFrogRepo) {
filterBuilder.AddCriterion("IsLatestVersion eq true");
}
else {
filterBuilder.AddCriterion("IsLatestVersion");
}
}


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

if (!_isPSGalleryRepo)
Expand Down
Loading