1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package gitlab
18
19 import (
20 "fmt"
21 "net/http"
22 "time"
23 )
24
25
26
27
28
29 type ResourceStateEventsService struct {
30 client *Client
31 }
32
33
34
35
36 type StateEvent struct {
37 ID int `json:"id"`
38 User *BasicUser `json:"user"`
39 CreatedAt *time.Time `json:"created_at"`
40 ResourceType string `json:"resource_type"`
41 ResourceID int `json:"resource_id"`
42 State EventTypeValue `json:"state"`
43 }
44
45
46
47
48
49
50 type ListStateEventsOptions struct {
51 ListOptions
52 }
53
54
55
56
57
58
59 func (s *ResourceStateEventsService) ListIssueStateEvents(pid interface{}, issue int, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error) {
60 project, err := parseID(pid)
61 if err != nil {
62 return nil, nil, err
63 }
64 u := fmt.Sprintf("projects/%s/issues/%d/resource_state_events", PathEscape(project), issue)
65
66 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
67 if err != nil {
68 return nil, nil, err
69 }
70
71 var ses []*StateEvent
72 resp, err := s.client.Do(req, &ses)
73 if err != nil {
74 return nil, resp, err
75 }
76
77 return ses, resp, nil
78 }
79
80
81
82
83
84 func (s *ResourceStateEventsService) GetIssueStateEvent(pid interface{}, issue int, event int, options ...RequestOptionFunc) (*StateEvent, *Response, error) {
85 project, err := parseID(pid)
86 if err != nil {
87 return nil, nil, err
88 }
89 u := fmt.Sprintf("projects/%s/issues/%d/resource_state_events/%d", PathEscape(project), issue, event)
90
91 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
92 if err != nil {
93 return nil, nil, err
94 }
95
96 se := new(StateEvent)
97 resp, err := s.client.Do(req, se)
98 if err != nil {
99 return nil, resp, err
100 }
101
102 return se, resp, nil
103 }
104
105
106
107
108
109
110 func (s *ResourceStateEventsService) ListMergeStateEvents(pid interface{}, request int, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error) {
111 project, err := parseID(pid)
112 if err != nil {
113 return nil, nil, err
114 }
115 u := fmt.Sprintf("projects/%s/merge_requests/%d/resource_state_events", PathEscape(project), request)
116
117 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
118 if err != nil {
119 return nil, nil, err
120 }
121
122 var ses []*StateEvent
123 resp, err := s.client.Do(req, &ses)
124 if err != nil {
125 return nil, resp, err
126 }
127
128 return ses, resp, nil
129 }
130
131
132
133
134
135 func (s *ResourceStateEventsService) GetMergeRequestStateEvent(pid interface{}, request int, event int, options ...RequestOptionFunc) (*StateEvent, *Response, error) {
136 project, err := parseID(pid)
137 if err != nil {
138 return nil, nil, err
139 }
140 u := fmt.Sprintf("projects/%s/merge_requests/%d/resource_state_events/%d", PathEscape(project), request, event)
141
142 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
143 if err != nil {
144 return nil, nil, err
145 }
146
147 se := new(StateEvent)
148 resp, err := s.client.Do(req, se)
149 if err != nil {
150 return nil, resp, err
151 }
152
153 return se, resp, nil
154 }
155
View as plain text