Skip to content

Commit 71f2ed2

Browse files
committed
Made it so that Tags and the License display is Visual Studio.
1 parent 343d912 commit 71f2ed2

File tree

1 file changed

+81
-42
lines changed

1 file changed

+81
-42
lines changed

routers/api/packages/nuget/api_v3.go

Lines changed: 81 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,23 @@ type RegistrationIndexPageItem struct {
5353
// https://docs.microsoft.com/en-us/nuget/api/registration-base-url-resource#catalog-entry
5454
type CatalogEntry struct {
5555
CatalogLeafURL string `json:"@id"`
56-
PackageContentURL string `json:"packageContent"`
56+
Authors string `json:"authors"`
57+
Copyright string `json:"copyright"`
58+
DependencyGroups []*PackageDependencyGroup `json:"dependencyGroups"`
59+
Description string `json:"description"`
60+
IconURL string `json:"iconUrl"`
5761
ID string `json:"id"`
62+
IsPrerelease bool `json:"isPrerelease"`
63+
Language string `json:"language"`
64+
LicenseURL string `json:"licenseUrl"`
65+
PackageContentURL string `json:"packageContent"`
66+
ProjectURL string `json:"projectUrl"`
67+
RequireLicenseAcceptance bool `json:"requireLicenseAcceptance"`
68+
Summary string `json:"summary"`
69+
Tags string `json:"tags"`
5870
Version string `json:"version"`
59-
Description string `json:"description"`
6071
ReleaseNotes string `json:"releaseNotes"`
61-
Authors string `json:"authors"`
62-
RequireLicenseAcceptance bool `json:"requireLicenseAcceptance"`
63-
ProjectURL string `json:"projectUrl"`
64-
IconURL string `json:"iconUrl"`
65-
DependencyGroups []*PackageDependencyGroup `json:"dependencyGroups"`
72+
Published time.Time `json:"published"`
6673
}
6774

6875
// https://docs.microsoft.com/en-us/nuget/api/registration-base-url-resource#package-dependency-group
@@ -111,16 +118,23 @@ func createRegistrationIndexPageItem(l *linkBuilder, pd *packages_model.PackageD
111118
PackageContentURL: l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version),
112119
CatalogEntry: &CatalogEntry{
113120
CatalogLeafURL: l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version),
114-
PackageContentURL: l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version),
121+
Authors: metadata.Authors,
122+
Copyright: metadata.Copyright,
123+
DependencyGroups: createDependencyGroups(pd),
124+
Description: metadata.Description,
125+
IconURL: metadata.IconURL,
115126
ID: pd.Package.Name,
127+
IsPrerelease: pd.Version.IsPrerelease(),
128+
Language: metadata.Language,
129+
LicenseURL: metadata.LicenseURL,
130+
PackageContentURL: l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version),
131+
ProjectURL: metadata.ProjectURL,
132+
RequireLicenseAcceptance: metadata.RequireLicenseAcceptance,
133+
Summary: metadata.Summary,
134+
Tags: metadata.Tags,
116135
Version: pd.Version.Version,
117-
Description: metadata.Description,
118136
ReleaseNotes: metadata.ReleaseNotes,
119-
Authors: metadata.Authors,
120-
RequireLicenseAcceptance: metadata.RequireLicenseAcceptance,
121-
ProjectURL: metadata.ProjectURL,
122-
IconURL: metadata.IconURL,
123-
DependencyGroups: createDependencyGroups(pd),
137+
Published: pd.Version.CreatedUnix.AsLocalTime(),
124138
},
125139
}
126140
}
@@ -148,22 +162,42 @@ func createDependencyGroups(pd *packages_model.PackageDescriptor) []*PackageDepe
148162

149163
// https://docs.microsoft.com/en-us/nuget/api/registration-base-url-resource#registration-leaf
150164
type RegistrationLeafResponse struct {
151-
RegistrationLeafURL string `json:"@id"`
152-
Type []string `json:"@type"`
153-
Listed bool `json:"listed"`
154-
PackageContentURL string `json:"packageContent"`
155-
Published time.Time `json:"published"`
156-
RegistrationIndexURL string `json:"registration"`
165+
RegistrationLeafURL string `json:"@id"`
166+
Type []string `json:"@type"`
167+
PackageContentURL string `json:"packageContent"`
168+
RegistrationIndexURL string `json:"registration"`
169+
CatalogEntry CatalogEntry `json:"catalogEntry"`
157170
}
158171

159172
func createRegistrationLeafResponse(l *linkBuilder, pd *packages_model.PackageDescriptor) *RegistrationLeafResponse {
173+
registrationLeafURL := l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version)
174+
packageDownloadURL := l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version)
175+
metadata := pd.Metadata.(*nuget_module.Metadata)
160176
return &RegistrationLeafResponse{
161-
Type: []string{"Package", "http://schema.nuget.org/catalog#Permalink"},
162-
Listed: true,
163-
Published: pd.Version.CreatedUnix.AsLocalTime(),
164-
RegistrationLeafURL: l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version),
165-
PackageContentURL: l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version),
177+
RegistrationLeafURL: registrationLeafURL,
166178
RegistrationIndexURL: l.GetRegistrationIndexURL(pd.Package.Name),
179+
PackageContentURL: packageDownloadURL,
180+
Type: []string{"Package", "http://schema.nuget.org/catalog#Permalink"},
181+
CatalogEntry: CatalogEntry{
182+
CatalogLeafURL: registrationLeafURL,
183+
Authors: metadata.Authors,
184+
Copyright: metadata.Copyright,
185+
DependencyGroups: createDependencyGroups(pd),
186+
Description: metadata.Description,
187+
IconURL: metadata.IconURL,
188+
ID: pd.Package.Name,
189+
IsPrerelease: pd.Version.IsPrerelease(),
190+
Language: metadata.Language,
191+
LicenseURL: metadata.LicenseURL,
192+
PackageContentURL: packageDownloadURL,
193+
ProjectURL: metadata.ProjectURL,
194+
RequireLicenseAcceptance: metadata.RequireLicenseAcceptance,
195+
Summary: metadata.Summary,
196+
Tags: metadata.Tags,
197+
Version: pd.Version.Version,
198+
ReleaseNotes: metadata.ReleaseNotes,
199+
Published: pd.Version.CreatedUnix.AsLocalTime(),
200+
},
167201
}
168202
}
169203

@@ -191,22 +225,24 @@ type SearchResultResponse struct {
191225

192226
// https://docs.microsoft.com/en-us/nuget/api/search-query-service-resource#search-result
193227
type SearchResult struct {
194-
Authors string `json:"authors"`
195-
Copyright string `json:"copyright"`
196-
Description string `json:"description"`
197-
IconURL string `json:"iconUrl"`
198-
ID string `json:"id"`
199-
IsPrerelease bool `json:"isPrerelease"`
200-
Language string `json:"language"`
201-
LicenseURL string `json:"licenseUrl"`
202-
ProjectURL string `json:"projectUrl"`
203-
RequireLicenseAcceptance bool `json:"requireLicenseAcceptance"`
204-
Summary string `json:"summary"`
205-
Tags string `json:"tags"`
206-
Title string `json:"title"`
207-
Version string `json:"version"`
208-
Versions []*SearchResultVersion `json:"versions"`
209-
RegistrationIndexURL string `json:"registration"`
228+
Authors string `json:"authors"`
229+
Copyright string `json:"copyright"`
230+
DependencyGroups []*PackageDependencyGroup `json:"dependencyGroups"`
231+
Description string `json:"description"`
232+
IconURL string `json:"iconUrl"`
233+
ID string `json:"id"`
234+
IsPrerelease bool `json:"isPrerelease"`
235+
Language string `json:"language"`
236+
LicenseURL string `json:"licenseUrl"`
237+
ProjectURL string `json:"projectUrl"`
238+
RequireLicenseAcceptance bool `json:"requireLicenseAcceptance"`
239+
Summary string `json:"summary"`
240+
Tags string `json:"tags"`
241+
Title string `json:"title"`
242+
TotalDownloads int64 `json:"totalDownloads"`
243+
Version string `json:"version"`
244+
Versions []*SearchResultVersion `json:"versions"`
245+
RegistrationIndexURL string `json:"registration"`
210246
}
211247

212248
// https://docs.microsoft.com/en-us/nuget/api/search-query-service-resource#search-result
@@ -242,11 +278,12 @@ func createSearchResultResponse(l *linkBuilder, totalHits int64, pds []*packages
242278
func createSearchResult(l *linkBuilder, pds []*packages_model.PackageDescriptor) *SearchResult {
243279
latest := pds[0]
244280
versions := make([]*SearchResultVersion, 0, len(pds))
281+
totalDownloads := int64(0)
245282
for _, pd := range pds {
246283
if latest.SemVer.LessThan(pd.SemVer) {
247284
latest = pd
248285
}
249-
286+
totalDownloads += pd.Version.DownloadCount
250287
versions = append(versions, &SearchResultVersion{
251288
RegistrationLeafURL: l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version),
252289
Version: pd.Version.Version,
@@ -259,6 +296,7 @@ func createSearchResult(l *linkBuilder, pds []*packages_model.PackageDescriptor)
259296
Authors: metadata.Authors,
260297
Copyright: metadata.Copyright,
261298
Description: metadata.Description,
299+
DependencyGroups: createDependencyGroups(latest),
262300
IconURL: metadata.IconURL,
263301
ID: latest.Package.Name,
264302
IsPrerelease: latest.Version.IsPrerelease(),
@@ -269,6 +307,7 @@ func createSearchResult(l *linkBuilder, pds []*packages_model.PackageDescriptor)
269307
Summary: metadata.Summary,
270308
Tags: metadata.Tags,
271309
Title: metadata.Title,
310+
TotalDownloads: totalDownloads,
272311
Version: latest.Version.Version,
273312
Versions: versions,
274313
RegistrationIndexURL: l.GetRegistrationIndexURL(latest.Package.Name),

0 commit comments

Comments
 (0)