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 FreezePeriodsService struct {
30 client *Client
31 }
32
33
34
35
36
37 type FreezePeriod struct {
38 ID int `json:"id"`
39 FreezeStart string `json:"freeze_start"`
40 FreezeEnd string `json:"freeze_end"`
41 CronTimezone string `json:"cron_timezone"`
42 CreatedAt *time.Time `json:"created_at"`
43 UpdatedAt *time.Time `json:"updated_at"`
44 }
45
46
47
48
49
50
51 type ListFreezePeriodsOptions ListOptions
52
53
54
55
56
57 func (s *FreezePeriodsService) ListFreezePeriods(pid interface{}, opt *ListFreezePeriodsOptions, options ...RequestOptionFunc) ([]*FreezePeriod, *Response, error) {
58 project, err := parseID(pid)
59 if err != nil {
60 return nil, nil, err
61 }
62 u := fmt.Sprintf("projects/%s/freeze_periods", PathEscape(project))
63
64 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
65 if err != nil {
66 return nil, nil, err
67 }
68
69 var fp []*FreezePeriod
70 resp, err := s.client.Do(req, &fp)
71 if err != nil {
72 return nil, resp, err
73 }
74
75 return fp, resp, nil
76 }
77
78
79
80
81
82 func (s *FreezePeriodsService) GetFreezePeriod(pid interface{}, freezePeriod int, options ...RequestOptionFunc) (*FreezePeriod, *Response, error) {
83 project, err := parseID(pid)
84 if err != nil {
85 return nil, nil, err
86 }
87 u := fmt.Sprintf("projects/%s/freeze_periods/%d", PathEscape(project), freezePeriod)
88
89 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
90 if err != nil {
91 return nil, nil, err
92 }
93
94 fp := new(FreezePeriod)
95 resp, err := s.client.Do(req, fp)
96 if err != nil {
97 return nil, resp, err
98 }
99
100 return fp, resp, nil
101 }
102
103
104
105
106
107
108 type CreateFreezePeriodOptions struct {
109 FreezeStart *string `url:"freeze_start,omitempty" json:"freeze_start,omitempty"`
110 FreezeEnd *string `url:"freeze_end,omitempty" json:"freeze_end,omitempty"`
111 CronTimezone *string `url:"cron_timezone,omitempty" json:"cron_timezone,omitempty"`
112 }
113
114
115
116
117
118 func (s *FreezePeriodsService) CreateFreezePeriodOptions(pid interface{}, opt *CreateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error) {
119 project, err := parseID(pid)
120 if err != nil {
121 return nil, nil, err
122 }
123 u := fmt.Sprintf("projects/%s/freeze_periods", PathEscape(project))
124
125 req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
126 if err != nil {
127 return nil, nil, err
128 }
129
130 fp := new(FreezePeriod)
131 resp, err := s.client.Do(req, fp)
132 if err != nil {
133 return nil, resp, err
134 }
135
136 return fp, resp, nil
137 }
138
139
140
141
142
143
144 type UpdateFreezePeriodOptions struct {
145 FreezeStart *string `url:"freeze_start,omitempty" json:"freeze_start,omitempty"`
146 FreezeEnd *string `url:"freeze_end,omitempty" json:"freeze_end,omitempty"`
147 CronTimezone *string `url:"cron_timezone,omitempty" json:"cron_timezone,omitempty"`
148 }
149
150
151
152
153
154 func (s *FreezePeriodsService) UpdateFreezePeriodOptions(pid interface{}, freezePeriod int, opt *UpdateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error) {
155 project, err := parseID(pid)
156 if err != nil {
157 return nil, nil, err
158 }
159 u := fmt.Sprintf("projects/%s/freeze_periods/%d", PathEscape(project), freezePeriod)
160
161 req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
162 if err != nil {
163 return nil, nil, err
164 }
165
166 fp := new(FreezePeriod)
167 resp, err := s.client.Do(req, fp)
168 if err != nil {
169 return nil, resp, err
170 }
171
172 return fp, resp, nil
173 }
174
175
176
177
178
179
180
181 func (s *FreezePeriodsService) DeleteFreezePeriod(pid interface{}, freezePeriod int, options ...RequestOptionFunc) (*Response, error) {
182 project, err := parseID(pid)
183 if err != nil {
184 return nil, err
185 }
186 u := fmt.Sprintf("projects/%s/freeze_periods/%d", PathEscape(project), freezePeriod)
187
188 req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
189 if err != nil {
190 return nil, err
191 }
192
193 return s.client.Do(req, nil)
194 }
195
View as plain text