1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 )
12
13
14
15
16
17
18 func (s *UsersService) ListPackages(ctx context.Context, user string, opts *PackageListOptions) ([]*Package, *Response, error) {
19 var u string
20 if user != "" {
21 u = fmt.Sprintf("users/%v/packages", user)
22 } else {
23 u = "user/packages"
24 }
25 u, err := addOptions(u, opts)
26 if err != nil {
27 return nil, nil, err
28 }
29
30 req, err := s.client.NewRequest("GET", u, nil)
31 if err != nil {
32 return nil, nil, err
33 }
34
35 var packages []*Package
36 resp, err := s.client.Do(ctx, req, &packages)
37 if err != nil {
38 return nil, resp, err
39 }
40
41 return packages, resp, nil
42 }
43
44
45
46
47
48
49 func (s *UsersService) GetPackage(ctx context.Context, user, packageType, packageName string) (*Package, *Response, error) {
50 var u string
51 if user != "" {
52 u = fmt.Sprintf("users/%v/packages/%v/%v", user, packageType, packageName)
53 } else {
54 u = fmt.Sprintf("user/packages/%v/%v", packageType, packageName)
55 }
56
57 req, err := s.client.NewRequest("GET", u, nil)
58 if err != nil {
59 return nil, nil, err
60 }
61
62 var pack *Package
63 resp, err := s.client.Do(ctx, req, &pack)
64 if err != nil {
65 return nil, resp, err
66 }
67
68 return pack, resp, nil
69 }
70
71
72
73
74
75
76 func (s *UsersService) DeletePackage(ctx context.Context, user, packageType, packageName string) (*Response, error) {
77 var u string
78 if user != "" {
79 u = fmt.Sprintf("users/%v/packages/%v/%v", user, packageType, packageName)
80 } else {
81 u = fmt.Sprintf("user/packages/%v/%v", packageType, packageName)
82 }
83
84 req, err := s.client.NewRequest("DELETE", u, nil)
85 if err != nil {
86 return nil, err
87 }
88
89 return s.client.Do(ctx, req, nil)
90 }
91
92
93
94
95
96
97 func (s *UsersService) RestorePackage(ctx context.Context, user, packageType, packageName string) (*Response, error) {
98 var u string
99 if user != "" {
100 u = fmt.Sprintf("users/%v/packages/%v/%v/restore", user, packageType, packageName)
101 } else {
102 u = fmt.Sprintf("user/packages/%v/%v/restore", packageType, packageName)
103 }
104
105 req, err := s.client.NewRequest("POST", u, nil)
106 if err != nil {
107 return nil, err
108 }
109
110 return s.client.Do(ctx, req, nil)
111 }
112
113
114
115
116
117
118 func (s *UsersService) PackageGetAllVersions(ctx context.Context, user, packageType, packageName string, opts *PackageListOptions) ([]*PackageVersion, *Response, error) {
119 var u string
120 if user != "" {
121 u = fmt.Sprintf("users/%v/packages/%v/%v/versions", user, packageType, packageName)
122 } else {
123 u = fmt.Sprintf("user/packages/%v/%v/versions", packageType, packageName)
124 }
125 u, err := addOptions(u, opts)
126 if err != nil {
127 return nil, nil, err
128 }
129
130 req, err := s.client.NewRequest("GET", u, nil)
131 if err != nil {
132 return nil, nil, err
133 }
134
135 var versions []*PackageVersion
136 resp, err := s.client.Do(ctx, req, &versions)
137 if err != nil {
138 return nil, resp, err
139 }
140
141 return versions, resp, nil
142 }
143
144
145
146
147
148
149 func (s *UsersService) PackageGetVersion(ctx context.Context, user, packageType, packageName string, packageVersionID int64) (*PackageVersion, *Response, error) {
150 var u string
151 if user != "" {
152 u = fmt.Sprintf("users/%v/packages/%v/%v/versions/%v", user, packageType, packageName, packageVersionID)
153 } else {
154 u = fmt.Sprintf("user/packages/%v/%v/versions/%v", packageType, packageName, packageVersionID)
155 }
156
157 req, err := s.client.NewRequest("GET", u, nil)
158 if err != nil {
159 return nil, nil, err
160 }
161
162 var version *PackageVersion
163 resp, err := s.client.Do(ctx, req, &version)
164 if err != nil {
165 return nil, resp, err
166 }
167
168 return version, resp, nil
169 }
170
171
172
173
174
175
176 func (s *UsersService) PackageDeleteVersion(ctx context.Context, user, packageType, packageName string, packageVersionID int64) (*Response, error) {
177 var u string
178 if user != "" {
179 u = fmt.Sprintf("users/%v/packages/%v/%v/versions/%v", user, packageType, packageName, packageVersionID)
180 } else {
181 u = fmt.Sprintf("user/packages/%v/%v/versions/%v", packageType, packageName, packageVersionID)
182 }
183
184 req, err := s.client.NewRequest("DELETE", u, nil)
185 if err != nil {
186 return nil, err
187 }
188
189 return s.client.Do(ctx, req, nil)
190 }
191
192
193
194
195
196
197 func (s *UsersService) PackageRestoreVersion(ctx context.Context, user, packageType, packageName string, packageVersionID int64) (*Response, error) {
198 var u string
199 if user != "" {
200 u = fmt.Sprintf("users/%v/packages/%v/%v/versions/%v/restore", user, packageType, packageName, packageVersionID)
201 } else {
202 u = fmt.Sprintf("user/packages/%v/%v/versions/%v/restore", packageType, packageName, packageVersionID)
203 }
204
205 req, err := s.client.NewRequest("POST", u, nil)
206 if err != nil {
207 return nil, err
208 }
209
210 return s.client.Do(ctx, req, nil)
211 }
212
View as plain text