authful 0.5.19 → 0.5.20

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MGNkZWIyNTY1MGVkZDBhZjhmZGVlYzIyZDBjZDE2NzA0YTAyMTZhNA==
4
+ NmE5NTczMzk3NjBlMzE5Y2U3MWI5MmM2NjJiZDNlYmZlOWQyY2Y5ZA==
5
5
  data.tar.gz: !binary |-
6
- NGRjYjA1MmEwZDNkMjViNmE5ZThhZDBjYjliMzY5MjNhZDFiMDU1MQ==
6
+ MDI4MmMzYzdlYTA3ZmE3NjQzMDBiNzNjNzk3OWJkMzAwNDcwZWRlYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YzZkM2M2MTI0NDE2ZDgxMDc4MGJkNDhmZWNkNTAzYjZmNTdlZDAxMjQwMGZi
10
- ZWY0ZWRmMWZmN2IwZjFjNGIwYjc3NzFmNDFhNDIwYWY2MzFkOTE0YjUxODQ4
11
- ZDllMDJiNzMzNzk2Nzk0NGRiNzZmY2ViMzVjOTgzYThjYjQ0MDI=
9
+ YWM2MmFhZDViYzMxMDQ5MTQ1YTkwZTAyMzY1MmYzM2IyMTczMjdlMzYzMjRh
10
+ ZDhlODdmZmQxMGFmMDJjN2I4MTdiODFlNjk2MDMzYzI3ZmQ2YmMzMDE2MDM4
11
+ ODEyYjRmOTZjN2Y4YjI2OGI0MzRmYjYzMzU2MzMwOGQ1N2FkMDM=
12
12
  data.tar.gz: !binary |-
13
- NjZhM2RmMDk5YzEzNjNiODA0NDZlZDQzZTUxYTNhMmUyZTNmMTQ4YTViOTJi
14
- NzcyMzA5ODU5Y2FlMWEzZGZkMTBmMzEwZjhmNGE1ZTZkMGQ3YzMyODZmN2Zi
15
- MjNmNWZmN2ZhNDRiMDlhMDgwZDNjMDkzYjAzM2UwOTYyODlmMDA=
13
+ ZWFjNGU2YWM5M2U1YjVmYTkzYzlhZmYyMTJjMjMwNjgwODY4YjAxZWZjNTVh
14
+ YmFkM2QwZmIyZTJhYjk3NmRjNzQ2NTU0Mzg4MDk2ZjAzNTkyYzM0MjI5ZjI1
15
+ M2YyYzBjY2MxN2M4ZGM0NGU1N2E1ODY3OWI3Y2FmYjEwNzM1YWE=
data/lib/authful/api.rb CHANGED
@@ -5,26 +5,34 @@ module Authful
5
5
  end
6
6
 
7
7
  module ClassMethods
8
- def enroll(email)
9
- res = Authful.send_request(:post, "/api/users", email: email)
10
- return Authful::Response.new(token: res["token"], qr_code: res["qr_code"], error: res["error"])
8
+ def enroll(email, phone = nil)
9
+ res = Authful.send_request(:post, "/api/users", email: email, phone: phone)
10
+ return Authful::Response.new(res)
11
11
  end
12
12
 
13
13
  def validate(token, otp)
14
- Authful.send_request(:get, "/api/users/#{token}/validate", token: otp)["ok"] == 1
14
+ res = Authful.send_request(:get, "/api/users/#{token}/validate", token: otp)
15
+ res["ok"] == 1
15
16
  end
16
17
 
17
18
  def send_sms(token)
18
- Authful.send_request(:get, "/api/users/#{token}/send_sms")["ok"] == 1
19
+ res = Authful.send_request(:get, "/api/users/#{token}/send_sms")
20
+ res["ok"] == 1
19
21
  end
20
22
 
21
- def set_phone(token, phone)
22
- Authful.send_request(:patch, "/api/users/#{token}/phone", phone: phone)["error"] == nil
23
+ def send_fallback_sms(token)
24
+ res = Authful.send_request(:get, "/api/users/#{token}/fallback")
25
+ res["ok"] == 1
26
+ end
27
+
28
+ def set_fallback_phone(token, phone)
29
+ res = Authful.send_request(:patch, "/api/users/#{token}/fallback", phone: phone)
30
+ res["error"] == nil
23
31
  end
24
32
 
25
33
  def reset(token, send_sms = false)
26
34
  res = Authful.send_request(:patch, "/api/users/#{token}/reset")
27
- return Authful::Response.new(token: res["token"], qr_code: res["qr_code"], error: res["error"])
35
+ return Authful::Response.new(res)
28
36
  end
29
37
 
30
38
  def generate_recovery_codes(token)
@@ -32,12 +40,19 @@ module Authful
32
40
  res["recovery_codes"]
33
41
  end
34
42
 
43
+ def view_recovery_codes(token)
44
+ res = Authful.send_request(:get, "/api/users/#{token}/recovery_codes")
45
+ res["recovery_codes"]
46
+ end
47
+
35
48
  def validate_recovery_code(token, code)
36
- Authful.send_request(:get, "/api/users/#{token}/recovery_codes", code: code)["ok"] == 1
49
+ res = Authful.send_request(:get, "/api/users/#{token}/recovery_codes/#{code}")
50
+ res["ok"] == 1
37
51
  end
38
52
 
39
53
  def unenroll(token)
40
- Authful.send_request(:delete, "/api/users/#{token}")["ok"] == 1
54
+ res = Authful.send_request(:delete, "/api/users/#{token}")
55
+ res["ok"] == 1
41
56
  end
42
57
  end
43
58
  end
@@ -1,6 +1,6 @@
1
1
  module Authful
2
2
  class Response
3
- attr_accessor :token, :qr_code, :error
3
+ attr_accessor :token, :qr_code, :phone, :error
4
4
 
5
5
  def initialize(args)
6
6
  args.each do |k,v|
@@ -54,12 +54,18 @@ describe Authful do
54
54
  Authful.validate("user-authful-token", "000000").should eq(false)
55
55
  end
56
56
 
57
- it "sends sms to users" do
57
+ it "sends sms to user" do
58
58
  FakeWeb.register_uri :get, "https://my-endpoint.dev/authful/api/users/user-authful-token/send_sms", {body: {ok: 1}.to_json}
59
59
 
60
60
  Authful.send_sms("user-authful-token").should eq(true)
61
61
  end
62
62
 
63
+ it "sends fallback sms to user" do
64
+ FakeWeb.register_uri :get, "https://my-endpoint.dev/authful/api/users/user-authful-token/fallback", {body: {ok: 1}.to_json}
65
+
66
+ Authful.send_fallback_sms("user-authful-token").should eq(true)
67
+ end
68
+
63
69
  it "catches failed sms" do
64
70
  FakeWeb.register_uri :get, "https://my-endpoint.dev/authful/api/users/user-authful-token/send_sms", {body: {error: "It just didn't send"}.to_json, status: [400, "Bad Request"]}
65
71
 
@@ -74,10 +80,10 @@ describe Authful do
74
80
  res.qr_code.should eq('qr-code')
75
81
  end
76
82
 
77
- it "sets phone number for user" do
78
- FakeWeb.register_uri :patch, "https://my-endpoint.dev/authful/api/users/user-authful-token/phone", {body: {ok: 1}.to_json}
83
+ it "sets fallback phone number for user" do
84
+ FakeWeb.register_uri :patch, "https://my-endpoint.dev/authful/api/users/user-authful-token/fallback", {body: {ok: 1}.to_json}
79
85
 
80
- Authful.set_phone("user-authful-token", "12005551212").should eq(true)
86
+ Authful.set_fallback_phone("user-authful-token", "12005551212").should eq(true)
81
87
  end
82
88
 
83
89
  it "generates recovery codes" do
@@ -86,14 +92,20 @@ describe Authful do
86
92
  Authful.generate_recovery_codes("user-authful-token").length.should eq(1)
87
93
  end
88
94
 
95
+ it "view recovery codes" do
96
+ FakeWeb.register_uri :get, "https://my-endpoint.dev/authful/api/users/user-authful-token/recovery_codes", {body: {ok: 1, recovery_codes: ["00000 11111 22222"]}.to_json}
97
+
98
+ Authful.generate_recovery_codes("user-authful-token").length.should eq(1)
99
+ end
100
+
89
101
  it "validates recovery code" do
90
- FakeWeb.register_uri :get, "https://my-endpoint.dev/authful/api/users/user-authful-token/recovery_codes?code=000001111122222", {body: {ok: 1}.to_json}
102
+ FakeWeb.register_uri :get, "https://my-endpoint.dev/authful/api/users/user-authful-token/recovery_codes/000001111122222", {body: {ok: 1}.to_json}
91
103
 
92
104
  Authful.validate_recovery_code("user-authful-token", "000001111122222").should eq(true)
93
105
  end
94
106
 
95
107
  it "does not validate invalid recovery code" do
96
- FakeWeb.register_uri :get, "https://my-endpoint.dev/authful/api/users/user-authful-token/recovery_codes?code=000001111100000", {body: {error: "invalid recovery code"}.to_json, status: ["403", "invalid recovery code"]}
108
+ FakeWeb.register_uri :get, "https://my-endpoint.dev/authful/api/users/user-authful-token/recovery_codes/000001111100000", {body: {error: "invalid recovery code"}.to_json, status: ["403", "invalid recovery code"]}
97
109
 
98
110
  Authful.validate_recovery_code("user-authful-token", "000001111100000").should eq(false)
99
111
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authful
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.19
4
+ version: 0.5.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Wyrosdick
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-14 00:00:00.000000000 Z
12
+ date: 2014-01-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client