stytch 0.1.17 → 0.2.0

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
  SHA256:
3
- metadata.gz: 1e9f10372707e0a42d1501e1c0b6d115dd69eb1c6d2865dafb238062a7221dc3
4
- data.tar.gz: 1ccf49b251bf88462be3fba3cd13db1ffe0a5fa6cdf36694bb05ce89bf8e1e83
3
+ metadata.gz: d64be302698661b1c67aa6bc25276bf60e3963f686eb8f82788652ab765c62c8
4
+ data.tar.gz: 1073eeb1593ed3289cbb86105f44785eb35f803c36a0f89a7882bdef43161e0d
5
5
  SHA512:
6
- metadata.gz: d3b8b523f0a345d2248ac79e97ef63b48929168005373653205d0a93bb2509f2f0037933579b1652dcf62d6e483069b702f1f1b4070fcb96a6a816b15e8fce1e
7
- data.tar.gz: e1de3d40fe18440ce97279b64cf64d471d99c9464e1b7f174f2af62347e4f086285deb44123bd0a3e3c6a49a668f2ded1de34eb93ab333a0e9ec07e33c489c89
6
+ metadata.gz: 20322948ece90536400226cf146b60695986217c9757b9cd6b786551d7d4c2d111740390a68dd447549463d55eaa46b39d1cd2f71d93b8f88784726b88193eb3
7
+ data.tar.gz: 1f736fbdd2c71ba191544e9d3ee18dc0b5468e7cd38f088a7979d5ee351fc31df32f2b366a7202f7a726900faa48036019b1deb8ad821ec69ad9b0faf2f39ec6
data/README.md CHANGED
@@ -41,4 +41,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
41
41
 
42
42
  ## Code of Conduct
43
43
 
44
- Everyone interacting in the Stytch project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/stytch/blob/master/CODE_OF_CONDUCT.md).
44
+ Everyone interacting in the Stytch project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/stytchauth/stytch-ruby/blob/main/CODE_OF_CONDUCT.md).
data/lib/stytch/client.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  require_relative 'endpoints/user'
2
2
  require_relative 'endpoints/magic'
3
+ require_relative 'endpoints/otp'
3
4
 
4
5
  module Stytch
5
6
  class Client
6
7
  include Stytch::Endpoints::User
7
8
  include Stytch::Endpoints::Magic
9
+ include Stytch::Endpoints::OTP
8
10
 
9
11
  ENVIRONMENTS = %i[live test].freeze
10
12
 
@@ -4,36 +4,36 @@ module Stytch
4
4
  PATH = "/v1/magic_links".freeze
5
5
 
6
6
  def send_magic(
7
- method_id:,
8
- user_id:,
9
- magic_link_url:,
10
- expiration_minutes:,
11
- attributes: {}
7
+ method_id:,
8
+ user_id:,
9
+ magic_link_url:,
10
+ expiration_minutes: nil,
11
+ attributes: {}
12
12
  )
13
13
  request = {
14
- method_id: method_id,
15
- user_id: user_id,
16
- magic_link_url: magic_link_url,
17
- expiration_minutes: expiration_minutes,
14
+ method_id: method_id,
15
+ user_id: user_id,
16
+ magic_link_url: magic_link_url,
18
17
  }
19
18
 
19
+ request[:expiration_minutes] = expiration_minutes if expiration_minutes != nil
20
20
  request[:attributes] = attributes if attributes != {}
21
21
 
22
22
  post("#{PATH}/send", request)
23
23
  end
24
24
 
25
25
  def send_magic_by_email(
26
- email:,
27
- magic_link_url:,
28
- expiration_minutes:,
29
- attributes: {}
26
+ email:,
27
+ magic_link_url:,
28
+ expiration_minutes: nil,
29
+ attributes: {}
30
30
  )
31
31
  request = {
32
- email: email,
33
- magic_link_url: magic_link_url,
34
- expiration_minutes: expiration_minutes,
32
+ email: email,
33
+ magic_link_url: magic_link_url,
35
34
  }
36
35
 
36
+ request[:expiration_minutes] = expiration_minutes if expiration_minutes != nil
37
37
  request[:attributes] = attributes if attributes != {}
38
38
 
39
39
  post("#{PATH}/send_by_email", request)
@@ -45,13 +45,15 @@ module Stytch
45
45
  signup_magic_link_url:,
46
46
  login_expiration_minutes: nil,
47
47
  signup_expiration_minutes: nil,
48
- attributes: {}
48
+ attributes: {},
49
+ create_user_as_pending: false
49
50
  )
50
51
 
51
52
  request = {
52
53
  email: email,
53
54
  login_magic_link_url: login_magic_link_url,
54
55
  signup_magic_link_url: signup_magic_link_url,
56
+ create_user_as_pending: create_user_as_pending,
55
57
  }
56
58
 
57
59
  request[:login_expiration_minutes] = login_expiration_minutes if login_expiration_minutes != nil
@@ -65,7 +67,8 @@ module Stytch
65
67
  email:,
66
68
  magic_link_url:,
67
69
  expiration_minutes: nil,
68
- attributes: {}
70
+ attributes: {},
71
+ name: {}
69
72
  )
70
73
 
71
74
  request = {
@@ -75,6 +78,7 @@ module Stytch
75
78
 
76
79
  request[:expiration_minutes] = expiration_minutes if expiration_minutes != nil
77
80
  request[:attributes] = attributes if attributes != {}
81
+ request[:name] = name if name != {}
78
82
 
79
83
  post("#{PATH}/invite_by_email", request)
80
84
  end
@@ -91,9 +95,9 @@ module Stytch
91
95
  end
92
96
 
93
97
  def authenticate_magic(
94
- token:,
95
- attributes: {},
96
- options: {}
98
+ token:,
99
+ attributes: {},
100
+ options: {}
97
101
  )
98
102
  request = {}
99
103
 
@@ -0,0 +1,56 @@
1
+ module Stytch
2
+ module Endpoints
3
+ module OTP
4
+ PATH = "/v1/otp".freeze
5
+
6
+ def send_otp_by_sms(
7
+ phone_number:,
8
+ expiration_minutes: nil,
9
+ attributes: {}
10
+ )
11
+ request = {
12
+ phone_number: phone_number,
13
+ expiration_minutes: expiration_minutes,
14
+ }
15
+
16
+ request[:attributes] = attributes if attributes != {}
17
+
18
+ post("#{PATH}/send_by_sms", request)
19
+ end
20
+
21
+ def login_or_create_user_by_sms(
22
+ phone_number:,
23
+ expiration_minutes: nil,
24
+ attributes: {},
25
+ create_user_as_pending: false
26
+ )
27
+ request = {
28
+ phone_number: phone_number,
29
+ expiration_minutes: expiration_minutes,
30
+ create_user_as_pending: create_user_as_pending
31
+ }
32
+
33
+ request[:attributes] = attributes if attributes != {}
34
+
35
+ post("#{PATH}/login_or_create", request)
36
+ end
37
+
38
+ def authenticate_otp(
39
+ method_id:,
40
+ code:,
41
+ attributes: {},
42
+ options: {}
43
+ )
44
+ request = {
45
+ method_id: method_id,
46
+ code: code,
47
+ }
48
+
49
+ request[:attributes] = attributes if attributes != {}
50
+ request[:options] = options if options != {}
51
+
52
+ post("#{PATH}/authenticate", request)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -8,8 +8,8 @@ module Stytch
8
8
  end
9
9
 
10
10
  def get_pending_users(
11
- limit: nil,
12
- starting_after_id: nil
11
+ limit: nil,
12
+ starting_after_id: nil
13
13
  )
14
14
  query_params = {
15
15
  limit: limit,
@@ -22,12 +22,14 @@ module Stytch
22
22
  end
23
23
 
24
24
  def create_user(
25
- email:,
26
- name: {},
27
- attributes: {}
25
+ email:,
26
+ phone_number: nil,
27
+ name: {},
28
+ attributes: {}
28
29
  )
29
30
  request = {
30
31
  email: email,
32
+ phone_number: phone_number
31
33
  }
32
34
 
33
35
  request[:name] = name if name != {}
@@ -40,10 +42,12 @@ module Stytch
40
42
  user_id:,
41
43
  name: {},
42
44
  emails: [],
45
+ phone_numbers: [],
43
46
  attributes: {}
44
47
  )
45
48
  request = {
46
- emails: format_emails(emails),
49
+ emails: format_emails(emails),
50
+ phone_numbers: format_phone_numbers(phone_numbers),
47
51
  }
48
52
 
49
53
  request[:name] = name if name != {}
@@ -57,10 +61,15 @@ module Stytch
57
61
  end
58
62
 
59
63
  def delete_user_email(
60
- user_id:,
61
- email:
64
+ email_id:
65
+ )
66
+ delete("#{PATH}/emails/#{email_id}")
67
+ end
68
+
69
+ def delete_user_phone_number(
70
+ phone_id:
62
71
  )
63
- delete("#{PATH}/#{user_id}/emails/#{email}")
72
+ delete("#{PATH}/phone_numbers/#{phone_id}")
64
73
  end
65
74
 
66
75
  private
@@ -70,6 +79,12 @@ module Stytch
70
79
  emails.each { |email| e << { email: email} }
71
80
  e
72
81
  end
82
+
83
+ def format_phone_numbers(phone_numbers)
84
+ p = []
85
+ phone_numbers.each { |phone_number| p << { phone_number: phone_number} }
86
+ p
87
+ end
73
88
  end
74
89
  end
75
90
  end
@@ -1,3 +1,3 @@
1
1
  module Stytch
2
- VERSION = "0.1.17"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stytch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.17
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - alex-stytch
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-04 00:00:00.000000000 Z
11
+ date: 2021-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -50,7 +50,7 @@ dependencies:
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '2.0'
53
- description:
53
+ description:
54
54
  email:
55
55
  - alex@stytch.com
56
56
  executables: []
@@ -70,6 +70,7 @@ files:
70
70
  - lib/stytch.rb
71
71
  - lib/stytch/client.rb
72
72
  - lib/stytch/endpoints/magic.rb
73
+ - lib/stytch/endpoints/otp.rb
73
74
  - lib/stytch/endpoints/user.rb
74
75
  - lib/stytch/middleware.rb
75
76
  - lib/stytch/version.rb
@@ -80,7 +81,7 @@ licenses:
80
81
  metadata:
81
82
  homepage_uri: https://stytch.com
82
83
  source_code_uri: https://github.com/stytchauth/stytch-ruby
83
- post_install_message:
84
+ post_install_message:
84
85
  rdoc_options: []
85
86
  require_paths:
86
87
  - lib
@@ -95,8 +96,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
96
  - !ruby/object:Gem::Version
96
97
  version: '0'
97
98
  requirements: []
98
- rubygems_version: 3.0.3
99
- signing_key:
99
+ rubygems_version: 3.1.4
100
+ signing_key:
100
101
  specification_version: 4
101
102
  summary: Stytch Ruby Gem
102
103
  test_files: []