1package artifactory 2 3import ( 4 "encoding/json" 5 "strings" 6) 7 8type Gavc struct { 9 GroupID string 10 ArtifactID string 11 Version string 12 Classifier string 13 Repos []string 14} 15 16func (c *ArtifactoryClient) GAVCSearch(coords *Gavc) (files []FileInfo, e error) { 17 url := "/api/search/gavc" 18 params := make(map[string]string) 19 if &coords.GroupID != nil { 20 params["g"] = coords.GroupID 21 } 22 if &coords.ArtifactID != nil { 23 params["a"] = coords.ArtifactID 24 } 25 if &coords.Version != nil { 26 params["v"] = coords.Version 27 } 28 if &coords.Classifier != nil { 29 params["c"] = coords.Classifier 30 } 31 if &coords.Repos != nil { 32 params["repos"] = strings.Join(coords.Repos, ",") 33 } 34 d, err := c.Get(url, params) 35 if err != nil { 36 return files, err 37 } else { 38 var dat GavcSearchResults 39 err := json.Unmarshal(d, &dat) 40 if err != nil { 41 return files, err 42 } else { 43 files = dat.Results 44 return files, nil 45 } 46 } 47} 48