packagecloud-ruby 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9095e6773299c93c30bd9b05416c83192fd8af6
4
- data.tar.gz: 323bc2ea63c909b749908429fcff9148e2829516
3
+ metadata.gz: 2148e57f1cc8a933e11fd6a165ec358e7b636e1d
4
+ data.tar.gz: 9eb9d537f060a8e1dddc4121888f483717c71ec4
5
5
  SHA512:
6
- metadata.gz: d2c1f929e8d8eaee339271079a6ee28c1cf9746be3316999d92cae321e0cc91006694aab66285b2343546763f5618846324fcd18ac3f8d0ea43bef9912bd6823
7
- data.tar.gz: 44dceaa0f8b89b9e5de3397fa8dc196ffdf350b2b5c76c4dea40647d1245d4868f085c51828cb1be96c1a182b4256179991cc9d1aee420311e72f25fd0e715c8
6
+ metadata.gz: 5225b9c40fd64b83f60197f5236fe800858822654a3aff444de315bca238a98b8de2d55d17951b9f4bc195c731fe5b0ebd6e82514c22d33d8ca1537fcbf24493
7
+ data.tar.gz: a1f407ebe174facf91bd96b7cc76f634f4e66d461f7abcda2395105f0e50b4a86351439cd8aa94a5444aa460a7569f22140f322b612d6452c1858410298cca4c
@@ -188,6 +188,21 @@ module Packagecloud
188
188
  parsed_json_result(response)
189
189
  end
190
190
 
191
+ def delete_read_token(repo, master_token_id, read_token_id)
192
+ assert_valid_repo_name(repo)
193
+ url = "/api/v1/repos/#{username}/#{repo}/master_tokens/#{master_token_id}/read_tokens/#{read_token_id}"
194
+ response = delete(url)
195
+ Result.new.tap do |result|
196
+ result.succeeded = (response.status == 204)
197
+ end
198
+ end
199
+
200
+ def list_read_tokens(repo, master_token_id)
201
+ assert_valid_repo_name(repo)
202
+ response = get("/api/v1/repos/#{username}/#{repo}/master_tokens/#{master_token_id}/read_tokens.json")
203
+ parsed_json_result(response)
204
+ end
205
+
191
206
  private
192
207
  def assert_valid_repo_name(repo)
193
208
  if repo.include?("/")
@@ -1,7 +1,7 @@
1
1
  module Packagecloud
2
2
  MAJOR_VERSION = "1"
3
3
  MINOR_VERSION = "0"
4
- PATCH_VERSION = "5"
4
+ PATCH_VERSION = "6"
5
5
 
6
6
  VERSION = [MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION].join(".")
7
7
  end
@@ -7,6 +7,7 @@ class PackagecloudServer < WEBrick::HTTPServlet::AbstractServlet
7
7
  GEM_VERSION = "{\"major\":\"0\",\"minor\":\"2\",\"patch\":\"1\"}"
8
8
  REPO = '{"name": "test_repo","created_at": "2014-08-30T03:51:37.000Z","url": "https://packagecloud.io/joedamato/test_repo","last_push_human": "about 2 months ago","package_count_human": "4 packages","private": true,"fqname": "joedamato/test_repo"}'
9
9
  REPOS = "[#{REPO}]"
10
+ READ_TOKENS = '{"read_tokens":[{"id":"1","name":"testread","value":"notreal"}]}'
10
11
 
11
12
  def json_response(request, response, body)
12
13
  response.status = 200
@@ -48,10 +49,21 @@ class PackagecloudServer < WEBrick::HTTPServlet::AbstractServlet
48
49
 
49
50
  $request, $response = request, response
50
51
  end
52
+
53
+ def nocontent_response(request, response)
54
+ response.status = 204
55
+ response['Content-Type'] = 'text/plain'
56
+ response.body = ''
57
+ $request, $response = request, response
58
+ end
59
+
60
+ def can_acess?(request)
61
+ request["Authorization"] == "Basic dGVzdF90b2tlbjo="
62
+ end
63
+
51
64
  def route(request, response)
52
- if request["Authorization"] && request["Authorization"] != "Basic dGVzdF90b2tlbjo="
53
- return forbidden_response(request, response)
54
- end
65
+ return forbidden_response(request, response) unless can_acess?(request)
66
+
55
67
  path = request.path
56
68
  case path
57
69
  when "/api/v1/distributions.json"
@@ -70,6 +82,8 @@ class PackagecloudServer < WEBrick::HTTPServlet::AbstractServlet
70
82
  plain_response(request, response, PACKAGE_CONTENTS)
71
83
  when "/api/v1/gem_version.json"
72
84
  json_response(request, response, GEM_VERSION)
85
+ when "/api/v1/repos/joedamato/test_repo/master_tokens/test_master_token/read_tokens.json"
86
+ json_response(request, response, READ_TOKENS)
73
87
  else
74
88
  default_response(request, response)
75
89
  $request, $response = request, response
@@ -84,4 +98,15 @@ class PackagecloudServer < WEBrick::HTTPServlet::AbstractServlet
84
98
  route(request, response)
85
99
  end
86
100
 
101
+ def do_DELETE(request, response)
102
+ return forbidden_response(request, response) unless can_acess?(request)
103
+
104
+ path = request.path
105
+ case path
106
+ when "/api/v1/repos/joedamato/test_repo/master_tokens/test_master_token/read_tokens/1"
107
+ nocontent_response(request, response)
108
+ else
109
+ default_response(request, response)
110
+ end
111
+ end
87
112
  end
@@ -212,6 +212,22 @@ describe Packagecloud do
212
212
  }.to raise_error(UnauthenticatedException)
213
213
  end
214
214
 
215
+ it "deletes read token" do
216
+ result = @client.delete_read_token("test_repo", "test_master_token", 1)
217
+ expect(result.succeeded).to be_truthy
218
+ end
219
+
220
+ it "fails to delete invalid read token" do
221
+ result = @client.delete_read_token("test_repo", "test_master_token", 2323)
222
+ expect(result.succeeded).to be_falsey
223
+ end
224
+
225
+ it "lists read tokens" do
226
+ result = @client.list_read_tokens("test_repo", "test_master_token")
227
+ expect(result.succeeded).to be_truthy
228
+ expect(result.response["read_tokens"].first).to eq({"id" => "1", "name" => "testread", "value" => "notreal" })
229
+ end
230
+
215
231
  context "timeouts" do
216
232
  it "should have defaults" do
217
233
  credentials = Credentials.new("joedamato", "test_token")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packagecloud-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Damato
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-09 00:00:00.000000000 Z
11
+ date: 2018-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon