1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 "time"
12 )
13
14
15 type GistComment struct {
16 ID *int64 `json:"id,omitempty"`
17 URL *string `json:"url,omitempty"`
18 Body *string `json:"body,omitempty"`
19 User *User `json:"user,omitempty"`
20 CreatedAt *time.Time `json:"created_at,omitempty"`
21 }
22
23 func (g GistComment) String() string {
24 return Stringify(g)
25 }
26
27
28
29
30 func (s *GistsService) ListComments(ctx context.Context, gistID string, opts *ListOptions) ([]*GistComment, *Response, error) {
31 u := fmt.Sprintf("gists/%v/comments", gistID)
32 u, err := addOptions(u, opts)
33 if err != nil {
34 return nil, nil, err
35 }
36
37 req, err := s.client.NewRequest("GET", u, nil)
38 if err != nil {
39 return nil, nil, err
40 }
41
42 var comments []*GistComment
43 resp, err := s.client.Do(ctx, req, &comments)
44 if err != nil {
45 return nil, resp, err
46 }
47
48 return comments, resp, nil
49 }
50
51
52
53
54 func (s *GistsService) GetComment(ctx context.Context, gistID string, commentID int64) (*GistComment, *Response, error) {
55 u := fmt.Sprintf("gists/%v/comments/%v", gistID, commentID)
56 req, err := s.client.NewRequest("GET", u, nil)
57 if err != nil {
58 return nil, nil, err
59 }
60
61 c := new(GistComment)
62 resp, err := s.client.Do(ctx, req, c)
63 if err != nil {
64 return nil, resp, err
65 }
66
67 return c, resp, nil
68 }
69
70
71
72
73 func (s *GistsService) CreateComment(ctx context.Context, gistID string, comment *GistComment) (*GistComment, *Response, error) {
74 u := fmt.Sprintf("gists/%v/comments", gistID)
75 req, err := s.client.NewRequest("POST", u, comment)
76 if err != nil {
77 return nil, nil, err
78 }
79
80 c := new(GistComment)
81 resp, err := s.client.Do(ctx, req, c)
82 if err != nil {
83 return nil, resp, err
84 }
85
86 return c, resp, nil
87 }
88
89
90
91
92 func (s *GistsService) EditComment(ctx context.Context, gistID string, commentID int64, comment *GistComment) (*GistComment, *Response, error) {
93 u := fmt.Sprintf("gists/%v/comments/%v", gistID, commentID)
94 req, err := s.client.NewRequest("PATCH", u, comment)
95 if err != nil {
96 return nil, nil, err
97 }
98
99 c := new(GistComment)
100 resp, err := s.client.Do(ctx, req, c)
101 if err != nil {
102 return nil, resp, err
103 }
104
105 return c, resp, nil
106 }
107
108
109
110
111 func (s *GistsService) DeleteComment(ctx context.Context, gistID string, commentID int64) (*Response, error) {
112 u := fmt.Sprintf("gists/%v/comments/%v", gistID, commentID)
113 req, err := s.client.NewRequest("DELETE", u, nil)
114 if err != nil {
115 return nil, err
116 }
117
118 return s.client.Do(ctx, req, nil)
119 }
120
View as plain text