mirror of
https://github.com/go-gitea/gitea.git
synced 2024-05-11 05:55:29 +00:00
Fix NuGet search endpoints (#25613)
Fixes #25564 Fixes #23191 - Api v2 search endpoint should return only the latest version matching the query - Api v3 search endpoint should return `take` packages not package versions
This commit is contained in:
@ -9,6 +9,9 @@ import (
|
||||
|
||||
packages_model "code.gitea.io/gitea/models/packages"
|
||||
nuget_module "code.gitea.io/gitea/modules/packages/nuget"
|
||||
|
||||
"golang.org/x/text/collate"
|
||||
"golang.org/x/text/language"
|
||||
)
|
||||
|
||||
// https://docs.microsoft.com/en-us/nuget/api/service-index#resources
|
||||
@ -207,9 +210,15 @@ func createSearchResultResponse(l *linkBuilder, totalHits int64, pds []*packages
|
||||
grouped[pd.Package.Name] = append(grouped[pd.Package.Name], pd)
|
||||
}
|
||||
|
||||
keys := make([]string, 0, len(grouped))
|
||||
for key := range grouped {
|
||||
keys = append(keys, key)
|
||||
}
|
||||
collate.New(language.English, collate.IgnoreCase).SortStrings(keys)
|
||||
|
||||
data := make([]*SearchResult, 0, len(pds))
|
||||
for _, group := range grouped {
|
||||
data = append(data, createSearchResult(l, group))
|
||||
for _, key := range keys {
|
||||
data = append(data, createSearchResult(l, grouped[key]))
|
||||
}
|
||||
|
||||
return &SearchResultResponse{
|
||||
|
Reference in New Issue
Block a user