packagecloud-ruby 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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