MCPcopy Create free account
hub / github.com/archlinux-de/pkgstats-cli / GetPackages

Method GetPackages

internal/api/request/client.go:86–112  ·  view source on GitHub ↗
(packages ...string)

Source from the content-addressed store, hash-verified

84}
85
86func (client *Client) GetPackages(packages ...string) (PackagePopularityList, error) {
87 ppl := PackagePopularityList{}
88 ppl.PackagePopularities = make([]PackagePopularity, len(packages))
89
90 ch := make(chan (packagePopularityResult))
91
92 for _, p := range packages {
93 go func(p string, ch chan (packagePopularityResult)) {
94 res, err := client.GetPackage(p)
95 ch <- packagePopularityResult{res, err}
96 }(p, ch)
97 }
98
99 for i := range packages {
100 res := <-ch
101 if res.err != nil {
102 return PackagePopularityList{}, res.err
103 }
104 ppl.PackagePopularities[i] = res.pp
105 }
106
107 sort.Slice(ppl.PackagePopularities, func(i, j int) bool {
108 return ppl.PackagePopularities[i].Popularity > ppl.PackagePopularities[j].Popularity
109 })
110
111 return ppl, nil
112}
113
114func (client *Client) GetPackage(p string) (PackagePopularity, error) {
115 response, err := client.query("/api/packages/"+url.PathEscape(p), url.Values{})

Callers 3

TestGetPackagesFunction · 0.95
TestHandleServerErrorFunction · 0.95
newShowCmdFunction · 0.95

Calls 1

GetPackageMethod · 0.95

Tested by 2

TestGetPackagesFunction · 0.76
TestHandleServerErrorFunction · 0.76