-
Notifications
You must be signed in to change notification settings - Fork 29
/
tracker.go
74 lines (64 loc) · 1.68 KB
/
tracker.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package binding
import (
"github.com/konveyor/tackle2-hub/api"
)
//
// Tracker API.
type Tracker struct {
client *Client
}
//
// Create a Tracker.
func (h *Tracker) Create(r *api.Tracker) (err error) {
err = h.client.Post(api.TrackersRoot, &r)
return
}
//
// Get a Tracker by ID.
func (h *Tracker) Get(id uint) (r *api.Tracker, err error) {
r = &api.Tracker{}
path := Path(api.TrackerRoot).Inject(Params{api.ID: id})
err = h.client.Get(path, r)
return
}
//
// List Trackers.
func (h *Tracker) List() (list []api.Tracker, err error) {
list = []api.Tracker{}
err = h.client.Get(api.TrackersRoot, &list)
return
}
//
// Update a Tracker.
func (h *Tracker) Update(r *api.Tracker) (err error) {
path := Path(api.TrackerRoot).Inject(Params{api.ID: r.ID})
err = h.client.Put(path, r)
return
}
//
// Delete a Tracker.
func (h *Tracker) Delete(id uint) (err error) {
err = h.client.Delete(Path(api.TrackerRoot).Inject(Params{api.ID: id}))
return
}
//
// List Projects.
func (h *Tracker) ListProjects(id uint) (projectList []api.Project, err error) {
projectList = []api.Project{}
err = h.client.Get(Path(api.TrackerProjects).Inject(Params{api.ID: id}), &projectList)
return
}
//
// Get Projects.
func (h *Tracker) GetProjects(id1 uint, id2 uint) (project api.Project, err error) {
project = api.Project{}
err = h.client.Get(Path(api.TrackerProject).Inject(Params{api.ID: id1, api.ID2: id2}), &project)
return
}
//
// List Project Issue Types.
func (h *Tracker) ListProjectIssueTypes(id1 uint, id2 uint) (issueType []api.IssueType, err error) {
issueType = []api.IssueType{}
err = h.client.Get(Path(api.TrackerProjectIssueTypes).Inject(Params{api.ID: id1, api.ID2: id2}), &issueType)
return
}