stytch 0.1.19 → 1.0.0

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
  SHA256:
3
- metadata.gz: 3c8b898c1c7e673cc54ef1ee97fdaeb3d436c24f26b251254656b1122687ff6e
4
- data.tar.gz: 7dc74b9fd3d9de595f6d30b51c800ec0942ab048b3ce7696268335140d8c5b56
3
+ metadata.gz: f31f4c1727653f8dbdd402bb9e97d31ed7893f537c7f98923b3abfa6d1bbcc14
4
+ data.tar.gz: a3cdadaa143fcfc4e0d72b1d0f0e35246a254ff8482c56627fa6d7cb6cb2e898
5
5
  SHA512:
6
- metadata.gz: ce3b4b0172588906bec95a68cc479e74ec77dafcc070e7d3019d1b262a23ff504505c62189ef0b10351b5156bee7ce72e7c6a638e6a4b5dffa96b2d44e61d022
7
- data.tar.gz: db7fb71f2cdba11ab2eac8acbf6f41ecb7f5e50f5bae31d76a9a5305b41529070e5e008c3275b47f4765f065309c6a6a3e21e3a5092b584dd92c45ed8337da1b
6
+ metadata.gz: 56aec4b2699da311092641a43150259a8315ff6c53a460377910dddebffb8c5f02986481a8ef9b8851bb40e25dfb46805b058055bef59b68d6a1d1b688c438fc
7
+ data.tar.gz: 07c8003263f90593c7c9e86920b8d866621e2890fb477e4d3b05eeb80c56b23c2cfab5913db80b76fe0b4be8d6260e26ce877f2000e8e3686515fce6a5867e5b
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
 
@@ -3,37 +3,22 @@ module Stytch
3
3
  module Magic
4
4
  PATH = "/v1/magic_links".freeze
5
5
 
6
- def send_magic(
7
- method_id:,
8
- user_id:,
9
- magic_link_url:,
10
- expiration_minutes:,
11
- attributes: {}
12
- )
13
- request = {
14
- method_id: method_id,
15
- user_id: user_id,
16
- magic_link_url: magic_link_url,
17
- expiration_minutes: expiration_minutes,
18
- }
19
-
20
- request[:attributes] = attributes if attributes != {}
21
-
22
- post("#{PATH}/send", request)
23
- end
24
-
25
6
  def send_magic_by_email(
26
- email:,
27
- magic_link_url:,
28
- expiration_minutes:,
29
- attributes: {}
7
+ email:,
8
+ login_magic_link_url:,
9
+ signup_magic_link_url:,
10
+ login_expiration_minutes: nil,
11
+ signup_expiration_minutes: nil,
12
+ attributes: {}
30
13
  )
31
14
  request = {
32
- email: email,
33
- magic_link_url: magic_link_url,
34
- expiration_minutes: expiration_minutes,
15
+ email: email,
16
+ login_magic_link_url: login_magic_link_url,
17
+ signup_magic_link_url: signup_magic_link_url,
35
18
  }
36
19
 
20
+ request[:login_expiration_minutes] = login_expiration_minutes if login_expiration_minutes != nil
21
+ request[:signup_expiration_minutes] = signup_expiration_minutes if signup_expiration_minutes != nil
37
22
  request[:attributes] = attributes if attributes != {}
38
23
 
39
24
  post("#{PATH}/send_by_email", request)
@@ -65,18 +50,18 @@ module Stytch
65
50
 
66
51
  def invite_by_email(
67
52
  email:,
68
- magic_link_url:,
69
- expiration_minutes: nil,
53
+ invite_magic_link_url:,
54
+ invite_expiration_minutes: nil,
70
55
  attributes: {},
71
56
  name: {}
72
57
  )
73
58
 
74
59
  request = {
75
60
  email: email,
76
- magic_link_url: magic_link_url,
61
+ invite_magic_link_url: invite_magic_link_url,
77
62
  }
78
63
 
79
- request[:expiration_minutes] = expiration_minutes if expiration_minutes != nil
64
+ request[:invite_expiration_minutes] = invite_expiration_minutes if invite_expiration_minutes != nil
80
65
  request[:attributes] = attributes if attributes != {}
81
66
  request[:name] = name if name != {}
82
67
 
@@ -95,9 +80,9 @@ module Stytch
95
80
  end
96
81
 
97
82
  def authenticate_magic(
98
- token:,
99
- attributes: {},
100
- options: {}
83
+ token:,
84
+ attributes: {},
85
+ options: {}
101
86
  )
102
87
  request = {}
103
88
 
@@ -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,16 @@ module Stytch
22
22
  end
23
23
 
24
24
  def create_user(
25
- email:,
26
- name: {},
27
- attributes: {}
25
+ email: nil,
26
+ phone_number: nil,
27
+ name: {},
28
+ create_user_as_pending: false,
29
+ attributes: {}
28
30
  )
29
31
  request = {
30
32
  email: email,
33
+ phone_number: phone_number,
34
+ create_user_as_pending: create_user_as_pending
31
35
  }
32
36
 
33
37
  request[:name] = name if name != {}
@@ -40,10 +44,12 @@ module Stytch
40
44
  user_id:,
41
45
  name: {},
42
46
  emails: [],
47
+ phone_numbers: [],
43
48
  attributes: {}
44
49
  )
45
50
  request = {
46
- emails: format_emails(emails),
51
+ emails: format_emails(emails),
52
+ phone_numbers: format_phone_numbers(phone_numbers),
47
53
  }
48
54
 
49
55
  request[:name] = name if name != {}
@@ -57,10 +63,15 @@ module Stytch
57
63
  end
58
64
 
59
65
  def delete_user_email(
60
- user_id:,
61
- email:
66
+ email_id:
67
+ )
68
+ delete("#{PATH}/emails/#{email_id}")
69
+ end
70
+
71
+ def delete_user_phone_number(
72
+ phone_id:
62
73
  )
63
- delete("#{PATH}/#{user_id}/emails/#{email}")
74
+ delete("#{PATH}/phone_numbers/#{phone_id}")
64
75
  end
65
76
 
66
77
  private
@@ -70,6 +81,12 @@ module Stytch
70
81
  emails.each { |email| e << { email: email} }
71
82
  e
72
83
  end
84
+
85
+ def format_phone_numbers(phone_numbers)
86
+ p = []
87
+ phone_numbers.each { |phone_number| p << { phone_number: phone_number} }
88
+ p
89
+ end
73
90
  end
74
91
  end
75
92
  end
@@ -1,3 +1,3 @@
1
1
  module Stytch
2
- VERSION = "0.1.19"
2
+ VERSION = "1.0.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.19
4
+ version: 1.0.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-30 00:00:00.000000000 Z
11
+ date: 2021-06-01 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: []