snitcher 0.4.0.pre1 → 0.4.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/snitcher/api.rb +1 -1
- data/lib/snitcher/api/client.rb +7 -7
- data/lib/snitcher/version.rb +1 -1
- data/spec/api/client_spec.rb +15 -18
- data/spec/api_spec.rb +22 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52b46733dac8b3d6892d836ce73c27527c705f4c
|
4
|
+
data.tar.gz: 8117b728733b857dd8840491a6fa16f0a2db6ba0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe9a30bdb596ffc377f951fd853ac66b00b22370cde6989224bd7a9e8ffa05a8b5a8832f14e74b0a779d458a29c4216e8efd8098720311c53fdb15491460dad0
|
7
|
+
data.tar.gz: f37a6ee3a9473e27e2a905bb81469c7df72990f3a35c16cc5892ffa5961ac92b5a52e7917af65a223767004666464104e6c2f7cce04ea620186e441f813d5318
|
data/lib/snitcher/api.rb
CHANGED
@@ -30,7 +30,7 @@ module Snitcher
|
|
30
30
|
# Raises Snitcher::API::Error based on the type from the server.
|
31
31
|
# Raises Timeout::Error if the request timed out.
|
32
32
|
def get_key(username, password, options={})
|
33
|
-
api = options.fetch(:uri, "https://deadmanssnitch.com")
|
33
|
+
api = options.fetch(:uri, "https://api.deadmanssnitch.com")
|
34
34
|
uri = URI.parse("#{api}/v1/api_key")
|
35
35
|
|
36
36
|
timeout = options.fetch(:timeout, 5)
|
data/lib/snitcher/api/client.rb
CHANGED
@@ -187,16 +187,16 @@ class Snitcher::API::Client
|
|
187
187
|
# Example
|
188
188
|
#
|
189
189
|
# Add tags to an existing snitch.
|
190
|
-
#
|
191
|
-
#
|
192
|
-
#
|
193
|
-
#
|
194
|
-
#
|
195
|
-
#
|
196
|
-
# ]
|
190
|
+
# @client.add_tags("c2354d53d2", %w("red", "green")
|
191
|
+
# => [ "yellow", "red", "green" ]
|
192
|
+
#
|
193
|
+
# Adding a single tag
|
194
|
+
# @client.add_tags("c2354d53d2", "orange")
|
195
|
+
# => [ "yellow", "orange" ]
|
197
196
|
#
|
198
197
|
# Raise Timeout::Error if the API request times out
|
199
198
|
def add_tags(token, tags=[])
|
199
|
+
tags = [tags].flatten
|
200
200
|
post("/v1/snitches/#{token}/tags", tags)
|
201
201
|
end
|
202
202
|
|
data/lib/snitcher/version.rb
CHANGED
data/spec/api/client_spec.rb
CHANGED
@@ -287,29 +287,26 @@ describe Snitcher::API::Client do
|
|
287
287
|
end
|
288
288
|
|
289
289
|
describe "#add_tags" do
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
"red",
|
295
|
-
"green"
|
296
|
-
]'
|
297
|
-
}
|
290
|
+
it "adds the tags to the Snitch via the API" do
|
291
|
+
request = stub_request(:post, "#{snitch_url}/c2354d53d2/tags").
|
292
|
+
with(:body => %|["red","green"]|).
|
293
|
+
to_return(:body => %|["red", "green"]|, :status => 200)
|
298
294
|
|
299
|
-
|
300
|
-
|
295
|
+
result = client.add_tags("c2354d53d2", ["red", "green"])
|
296
|
+
|
297
|
+
expect(request).to have_been_made.once
|
298
|
+
expect(result).to eq(["red", "green"])
|
301
299
|
end
|
302
300
|
|
303
|
-
it "
|
304
|
-
|
301
|
+
it "allows passing a single tag to add" do
|
302
|
+
request = stub_request(:post, "#{snitch_url}/TOKEN/tags").
|
303
|
+
with(:body => %|["extremely important"]|).
|
304
|
+
to_return(:body => %|["extremely important"]|, :status => 200)
|
305
305
|
|
306
|
-
|
307
|
-
end
|
306
|
+
result = client.add_tags("TOKEN", "extremely important")
|
308
307
|
|
309
|
-
|
310
|
-
|
311
|
-
expect(client.add_tags(token, tags)).to eq(JSON.parse(body))
|
312
|
-
end
|
308
|
+
expect(request).to have_been_made.once
|
309
|
+
expect(result).to eq(["extremely important"])
|
313
310
|
end
|
314
311
|
end
|
315
312
|
|
data/spec/api_spec.rb
CHANGED
@@ -1,20 +1,23 @@
|
|
1
1
|
require "spec_helper"
|
2
|
+
|
2
3
|
require "base64"
|
3
4
|
require "securerandom"
|
4
5
|
|
6
|
+
require "snitcher/api"
|
7
|
+
|
5
8
|
describe Snitcher::API do
|
6
9
|
describe "#get_key" do
|
7
10
|
it "returns the api_key" do
|
8
11
|
user = "alice@example.com"
|
9
12
|
pass = "password"
|
10
13
|
|
11
|
-
request = stub_request(:get, "
|
14
|
+
request = stub_request(:get, "https://#{user}:#{pass}@api.deadmanssnitch.com/v1/api_key").
|
12
15
|
to_return({
|
13
16
|
:body => '{"api_key": "_caeEiZXnEyEzXXYVh2NhQ"}',
|
14
17
|
:status => 200
|
15
18
|
})
|
16
19
|
|
17
|
-
actual = Snitcher::API.get_key(user, pass
|
20
|
+
actual = Snitcher::API.get_key(user, pass)
|
18
21
|
|
19
22
|
expect(actual).to eq("_caeEiZXnEyEzXXYVh2NhQ")
|
20
23
|
expect(request).to have_been_made.once
|
@@ -24,7 +27,7 @@ describe Snitcher::API do
|
|
24
27
|
user = "lol@notreally.horse"
|
25
28
|
pass = "nope"
|
26
29
|
|
27
|
-
request = stub_request(:get, "
|
30
|
+
request = stub_request(:get, "https://#{user}:#{pass}@api.deadmanssnitch.com/v1/api_key").
|
28
31
|
to_return({
|
29
32
|
:body => JSON.generate({
|
30
33
|
:type => "sign_in_incorrect",
|
@@ -36,7 +39,7 @@ describe Snitcher::API do
|
|
36
39
|
expect {
|
37
40
|
# Some shenanigans to verify type
|
38
41
|
begin
|
39
|
-
Snitcher::API.get_key(user, pass
|
42
|
+
Snitcher::API.get_key(user, pass)
|
40
43
|
rescue Snitcher::API::Error => e
|
41
44
|
expect(e.type).to eq("sign_in_incorrect")
|
42
45
|
expect(e.message).to eq("Invalid email or password.")
|
@@ -49,11 +52,24 @@ describe Snitcher::API do
|
|
49
52
|
end
|
50
53
|
|
51
54
|
it "raises Timeout::Error on a timeout" do
|
52
|
-
stub_request(:any, "
|
55
|
+
stub_request(:any, "https://api.deadmanssnitch.com/v1/api_key").to_timeout
|
53
56
|
|
54
57
|
expect {
|
55
|
-
Snitcher::API.get_key("", ""
|
58
|
+
Snitcher::API.get_key("", "")
|
56
59
|
}.to raise_error(Timeout::Error)
|
57
60
|
end
|
61
|
+
|
62
|
+
it "allows the API URI to be provided" do
|
63
|
+
request = stub_request(:any, "user:pass@dms.dev:4000/v1/api_key").
|
64
|
+
to_return({
|
65
|
+
:body => '{"api_key": "this_is_an_api_key"}',
|
66
|
+
:status => 200
|
67
|
+
})
|
68
|
+
|
69
|
+
actual = Snitcher::API.get_key("user", "pass", uri: "http://dms.dev:4000")
|
70
|
+
|
71
|
+
expect(actual).to eq("this_is_an_api_key")
|
72
|
+
expect(request).to have_been_made.once
|
73
|
+
end
|
58
74
|
end
|
59
75
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snitcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.0.
|
4
|
+
version: 0.4.0.pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Collective Idea
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|