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 AwardEmojiService struct {
30 client *Client
31 }
32
33
34
35
36 type AwardEmoji struct {
37 ID int `json:"id"`
38 Name string `json:"name"`
39 User struct {
40 Name string `json:"name"`
41 Username string `json:"username"`
42 ID int `json:"id"`
43 State string `json:"state"`
44 AvatarURL string `json:"avatar_url"`
45 WebURL string `json:"web_url"`
46 } `json:"user"`
47 CreatedAt *time.Time `json:"created_at"`
48 UpdatedAt *time.Time `json:"updated_at"`
49 AwardableID int `json:"awardable_id"`
50 AwardableType string `json:"awardable_type"`
51 }
52
53 const (
54 awardMergeRequest = "merge_requests"
55 awardIssue = "issues"
56 awardSnippets = "snippets"
57 )
58
59
60
61
62
63
64 type ListAwardEmojiOptions ListOptions
65
66
67
68
69
70 func (s *AwardEmojiService) ListMergeRequestAwardEmoji(pid interface{}, mergeRequestIID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
71 return s.listAwardEmoji(pid, awardMergeRequest, mergeRequestIID, opt, options...)
72 }
73
74
75
76
77
78 func (s *AwardEmojiService) ListIssueAwardEmoji(pid interface{}, issueIID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
79 return s.listAwardEmoji(pid, awardIssue, issueIID, opt, options...)
80 }
81
82
83
84
85
86 func (s *AwardEmojiService) ListSnippetAwardEmoji(pid interface{}, snippetID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
87 return s.listAwardEmoji(pid, awardSnippets, snippetID, opt, options...)
88 }
89
90 func (s *AwardEmojiService) listAwardEmoji(pid interface{}, resource string, resourceID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
91 project, err := parseID(pid)
92 if err != nil {
93 return nil, nil, err
94 }
95 u := fmt.Sprintf("projects/%s/%s/%d/award_emoji",
96 PathEscape(project),
97 resource,
98 resourceID,
99 )
100
101 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
102 if err != nil {
103 return nil, nil, err
104 }
105
106 var as []*AwardEmoji
107 resp, err := s.client.Do(req, &as)
108 if err != nil {
109 return nil, resp, err
110 }
111
112 return as, resp, nil
113 }
114
115
116
117
118
119 func (s *AwardEmojiService) GetMergeRequestAwardEmoji(pid interface{}, mergeRequestIID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
120 return s.getAwardEmoji(pid, awardMergeRequest, mergeRequestIID, awardID, options...)
121 }
122
123
124
125
126
127 func (s *AwardEmojiService) GetIssueAwardEmoji(pid interface{}, issueIID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
128 return s.getAwardEmoji(pid, awardIssue, issueIID, awardID, options...)
129 }
130
131
132
133
134
135 func (s *AwardEmojiService) GetSnippetAwardEmoji(pid interface{}, snippetID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
136 return s.getAwardEmoji(pid, awardSnippets, snippetID, awardID, options...)
137 }
138
139 func (s *AwardEmojiService) getAwardEmoji(pid interface{}, resource string, resourceID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
140 project, err := parseID(pid)
141 if err != nil {
142 return nil, nil, err
143 }
144 u := fmt.Sprintf("projects/%s/%s/%d/award_emoji/%d",
145 PathEscape(project),
146 resource,
147 resourceID,
148 awardID,
149 )
150
151 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
152 if err != nil {
153 return nil, nil, err
154 }
155
156 a := new(AwardEmoji)
157 resp, err := s.client.Do(req, &a)
158 if err != nil {
159 return nil, resp, err
160 }
161
162 return a, resp, nil
163 }
164
165
166
167
168
169
170 type CreateAwardEmojiOptions struct {
171 Name string `json:"name"`
172 }
173
174
175
176
177
178 func (s *AwardEmojiService) CreateMergeRequestAwardEmoji(pid interface{}, mergeRequestIID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
179 return s.createAwardEmoji(pid, awardMergeRequest, mergeRequestIID, opt, options...)
180 }
181
182
183
184
185
186 func (s *AwardEmojiService) CreateIssueAwardEmoji(pid interface{}, issueIID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
187 return s.createAwardEmoji(pid, awardIssue, issueIID, opt, options...)
188 }
189
190
191
192
193
194 func (s *AwardEmojiService) CreateSnippetAwardEmoji(pid interface{}, snippetID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
195 return s.createAwardEmoji(pid, awardSnippets, snippetID, opt, options...)
196 }
197
198 func (s *AwardEmojiService) createAwardEmoji(pid interface{}, resource string, resourceID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
199 project, err := parseID(pid)
200 if err != nil {
201 return nil, nil, err
202 }
203 u := fmt.Sprintf("projects/%s/%s/%d/award_emoji",
204 PathEscape(project),
205 resource,
206 resourceID,
207 )
208
209 req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
210 if err != nil {
211 return nil, nil, err
212 }
213
214 a := new(AwardEmoji)
215 resp, err := s.client.Do(req, &a)
216 if err != nil {
217 return nil, resp, err
218 }
219
220 return a, resp, nil
221 }
222
223
224
225
226
227 func (s *AwardEmojiService) DeleteIssueAwardEmoji(pid interface{}, issueIID, awardID int, options ...RequestOptionFunc) (*Response, error) {
228 return s.deleteAwardEmoji(pid, awardIssue, issueIID, awardID, options...)
229 }
230
231
232
233
234
235 func (s *AwardEmojiService) DeleteMergeRequestAwardEmoji(pid interface{}, mergeRequestIID, awardID int, options ...RequestOptionFunc) (*Response, error) {
236 return s.deleteAwardEmoji(pid, awardMergeRequest, mergeRequestIID, awardID, options...)
237 }
238
239
240
241
242
243 func (s *AwardEmojiService) DeleteSnippetAwardEmoji(pid interface{}, snippetID, awardID int, options ...RequestOptionFunc) (*Response, error) {
244 return s.deleteAwardEmoji(pid, awardSnippets, snippetID, awardID, options...)
245 }
246
247
248
249
250
251 func (s *AwardEmojiService) deleteAwardEmoji(pid interface{}, resource string, resourceID, awardID int, options ...RequestOptionFunc) (*Response, error) {
252 project, err := parseID(pid)
253 if err != nil {
254 return nil, err
255 }
256 u := fmt.Sprintf("projects/%s/%s/%d/award_emoji/%d", PathEscape(project), resource,
257 resourceID, awardID)
258
259 req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
260 if err != nil {
261 return nil, err
262 }
263 return s.client.Do(req, nil)
264 }
265
266
267
268
269
270
271 func (s *AwardEmojiService) ListIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
272 return s.listAwardEmojiOnNote(pid, awardIssue, issueID, noteID, opt, options...)
273 }
274
275
276
277
278
279
280 func (s *AwardEmojiService) ListMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
281 return s.listAwardEmojiOnNote(pid, awardMergeRequest, mergeRequestIID, noteID, opt, options...)
282 }
283
284
285
286
287
288
289 func (s *AwardEmojiService) ListSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
290 return s.listAwardEmojiOnNote(pid, awardSnippets, snippetIID, noteID, opt, options...)
291 }
292
293 func (s *AwardEmojiService) listAwardEmojiOnNote(pid interface{}, resources string, ressourceID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
294 project, err := parseID(pid)
295 if err != nil {
296 return nil, nil, err
297 }
298 u := fmt.Sprintf("projects/%s/%s/%d/notes/%d/award_emoji", PathEscape(project), resources,
299 ressourceID, noteID)
300
301 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
302 if err != nil {
303 return nil, nil, err
304 }
305
306 var as []*AwardEmoji
307 resp, err := s.client.Do(req, &as)
308 if err != nil {
309 return nil, resp, err
310 }
311
312 return as, resp, nil
313 }
314
315
316
317
318
319 func (s *AwardEmojiService) GetIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
320 return s.getSingleNoteAwardEmoji(pid, awardIssue, issueID, noteID, awardID, options...)
321 }
322
323
324
325
326
327
328 func (s *AwardEmojiService) GetMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
329 return s.getSingleNoteAwardEmoji(pid, awardMergeRequest, mergeRequestIID, noteID, awardID,
330 options...)
331 }
332
333
334
335
336
337 func (s *AwardEmojiService) GetSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
338 return s.getSingleNoteAwardEmoji(pid, awardSnippets, snippetIID, noteID, awardID, options...)
339 }
340
341 func (s *AwardEmojiService) getSingleNoteAwardEmoji(pid interface{}, ressource string, resourceID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
342 project, err := parseID(pid)
343 if err != nil {
344 return nil, nil, err
345 }
346 u := fmt.Sprintf("projects/%s/%s/%d/notes/%d/award_emoji/%d",
347 PathEscape(project),
348 ressource,
349 resourceID,
350 noteID,
351 awardID,
352 )
353
354 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
355 if err != nil {
356 return nil, nil, err
357 }
358
359 a := new(AwardEmoji)
360 resp, err := s.client.Do(req, &a)
361 if err != nil {
362 return nil, resp, err
363 }
364
365 return a, resp, nil
366 }
367
368
369
370
371
372 func (s *AwardEmojiService) CreateIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
373 return s.createAwardEmojiOnNote(pid, awardIssue, issueID, noteID, opt, options...)
374 }
375
376
377
378
379
380
381 func (s *AwardEmojiService) CreateMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
382 return s.createAwardEmojiOnNote(pid, awardMergeRequest, mergeRequestIID, noteID, opt, options...)
383 }
384
385
386
387
388
389 func (s *AwardEmojiService) CreateSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
390 return s.createAwardEmojiOnNote(pid, awardSnippets, snippetIID, noteID, opt, options...)
391 }
392
393
394
395
396
397 func (s *AwardEmojiService) createAwardEmojiOnNote(pid interface{}, resource string, resourceID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
398 project, err := parseID(pid)
399 if err != nil {
400 return nil, nil, err
401 }
402 u := fmt.Sprintf("projects/%s/%s/%d/notes/%d/award_emoji",
403 PathEscape(project),
404 resource,
405 resourceID,
406 noteID,
407 )
408
409 req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
410 if err != nil {
411 return nil, nil, err
412 }
413
414 a := new(AwardEmoji)
415 resp, err := s.client.Do(req, &a)
416 if err != nil {
417 return nil, resp, err
418 }
419
420 return a, resp, nil
421 }
422
423
424
425
426
427 func (s *AwardEmojiService) DeleteIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error) {
428 return s.deleteAwardEmojiOnNote(pid, awardIssue, issueID, noteID, awardID, options...)
429 }
430
431
432
433
434
435
436 func (s *AwardEmojiService) DeleteMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error) {
437 return s.deleteAwardEmojiOnNote(pid, awardMergeRequest, mergeRequestIID, noteID, awardID,
438 options...)
439 }
440
441
442
443
444
445 func (s *AwardEmojiService) DeleteSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error) {
446 return s.deleteAwardEmojiOnNote(pid, awardSnippets, snippetIID, noteID, awardID, options...)
447 }
448
449 func (s *AwardEmojiService) deleteAwardEmojiOnNote(pid interface{}, resource string, resourceID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error) {
450 project, err := parseID(pid)
451 if err != nil {
452 return nil, err
453 }
454 u := fmt.Sprintf("projects/%s/%s/%d/notes/%d/award_emoji/%d",
455 PathEscape(project),
456 resource,
457 resourceID,
458 noteID,
459 awardID,
460 )
461
462 req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
463 if err != nil {
464 return nil, err
465 }
466
467 return s.client.Do(req, nil)
468 }
469
View as plain text