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