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