stytch 2.2.0 → 2.6.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: e40426c4e4622ec2de65ac043377a0ce080e0fad6b93fb19f848676b32bae3d0
4
- data.tar.gz: dc82a3b5b69da73bf40d2ff29d62c3afad63baa565fcf4ba59301b205e8dc6d8
3
+ metadata.gz: 245003578710b944f8b2ffe1cfd080517b2177fcb2e01884f8b1087549ff09b8
4
+ data.tar.gz: e1d90c9591290ba11c64fe37cc5f4a4602a256deede647eca5cf003ff6cd5c39
5
5
  SHA512:
6
- metadata.gz: 80b2cc7201c3f24d8486d4cbe76242b7d28f37c07a3128124e0420fd161bd62b802c875d22a1056a2743eac68c30f264a2bde070fe34876f4d722067c71705a2
7
- data.tar.gz: d5ce170c73e22b94853395012c2245824059a7eeaf833c8dfb815e4319ae093c42383889320947921a2438541ee70900848354f43ffc9c9afe6e456116996d0f
6
+ metadata.gz: 1c2f2b097b711c28549050b7306d0a84112d30b65acc635a30dab4ff296622a38bd6c93b10c22b8170ad0904041cc3122a73d5f77c6dd190a0c5b6bbe8f21617
7
+ data.tar.gz: bb4cc6263f19ef61f98a7bc53867fb35a855ac72caa184673dba2346c4b1780534577d22b8c4b206213e5b758cff0e819c100f038dcc8eb0bbaeeed940fefe48
data/lib/stytch/client.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative 'users'
4
4
  require_relative 'magic_links'
5
+ require_relative 'oauth'
5
6
  require_relative 'otps'
6
7
  require_relative 'sessions'
7
8
 
@@ -9,7 +10,7 @@ module Stytch
9
10
  class Client
10
11
  ENVIRONMENTS = %i[live test].freeze
11
12
 
12
- attr_reader :users, :magic_links, :otps, :sessions
13
+ attr_reader :users, :magic_links, :oauth, :otps, :sessions
13
14
 
14
15
  def initialize(env:, project_id:, secret:, &block)
15
16
  @api_host = api_host(env)
@@ -20,6 +21,7 @@ module Stytch
20
21
 
21
22
  @users = Stytch::Users.new(@connection)
22
23
  @magic_links = Stytch::MagicLinks.new(@connection)
24
+ @oauth = Stytch::OAuth.new(@connection)
23
25
  @otps = Stytch::OTPs.new(@connection)
24
26
  @sessions = Stytch::Sessions.new(@connection)
25
27
  end
@@ -16,6 +16,21 @@ module Stytch
16
16
  @email = Stytch::MagicLinks::Email.new(@connection)
17
17
  end
18
18
 
19
+ def create(
20
+ user_id:,
21
+ expiration_minutes: nil,
22
+ attributes: {}
23
+ )
24
+ request = {
25
+ user_id: user_id
26
+ }
27
+
28
+ request[:expiration_minutes] = expiration_minutes unless expiration_minutes.nil?
29
+ request[:attributes] = attributes if attributes != {}
30
+
31
+ post_request(PATH.to_s, request)
32
+ end
33
+
19
34
  def authenticate(
20
35
  token:,
21
36
  attributes: {},
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'request_helper'
4
+
5
+ module Stytch
6
+ class OAuth
7
+ include Stytch::RequestHelper
8
+
9
+ PATH = '/v1/oauth'
10
+
11
+ def initialize(connection)
12
+ @connection = connection
13
+ end
14
+
15
+ def authenticate(
16
+ token:,
17
+ session_management_type: nil,
18
+ session_token: nil,
19
+ session_duration_minutes: nil
20
+ )
21
+ request = {
22
+ token: token
23
+ }
24
+ request[:session_management_type] = session_management_type unless session_management_type.nil?
25
+ request[:session_token] = session_token unless session_token.nil?
26
+ request[:session_duration_minutes] = session_duration_minutes unless session_duration_minutes.nil?
27
+
28
+ post_request("#{PATH}/authenticate", request)
29
+ end
30
+ end
31
+ end
data/lib/stytch/otps.rb CHANGED
@@ -6,7 +6,7 @@ module Stytch
6
6
  class OTPs
7
7
  include Stytch::RequestHelper
8
8
 
9
- attr_reader :sms, :whatsapp
9
+ attr_reader :sms, :whatsapp, :email
10
10
 
11
11
  PATH = '/v1/otps'
12
12
 
@@ -15,6 +15,7 @@ module Stytch
15
15
 
16
16
  @sms = Stytch::OTPs::SMS.new(@connection)
17
17
  @whatsapp = Stytch::OTPs::WhatsApp.new(@connection)
18
+ @email = Stytch::OTPs::Email.new(@connection)
18
19
  end
19
20
 
20
21
  def authenticate(
@@ -121,5 +122,47 @@ module Stytch
121
122
  post_request("#{PATH}/login_or_create", request)
122
123
  end
123
124
  end
125
+
126
+ class Email
127
+ include Stytch::RequestHelper
128
+
129
+ PATH = "#{Stytch::OTPs::PATH}/email"
130
+
131
+ def initialize(connection)
132
+ @connection = connection
133
+ end
134
+
135
+ def send(
136
+ email:,
137
+ expiration_minutes: nil,
138
+ attributes: {}
139
+ )
140
+ request = {
141
+ email: email,
142
+ expiration_minutes: expiration_minutes
143
+ }
144
+
145
+ request[:attributes] = attributes if attributes != {}
146
+
147
+ post_request("#{PATH}/send", request)
148
+ end
149
+
150
+ def login_or_create(
151
+ email:,
152
+ expiration_minutes: nil,
153
+ attributes: {},
154
+ create_user_as_pending: false
155
+ )
156
+ request = {
157
+ email: email,
158
+ expiration_minutes: expiration_minutes,
159
+ create_user_as_pending: create_user_as_pending
160
+ }
161
+
162
+ request[:attributes] = attributes if attributes != {}
163
+
164
+ post_request("#{PATH}/login_or_create", request)
165
+ end
166
+ end
124
167
  end
125
168
  end
@@ -14,7 +14,7 @@ module Stytch
14
14
 
15
15
  def get(user_id:)
16
16
  query_params = {
17
- user_id: user_id
17
+ user_id: user_id
18
18
  }
19
19
 
20
20
  request = request_with_query_params(PATH, query_params)
@@ -23,11 +23,11 @@ module Stytch
23
23
  end
24
24
 
25
25
  def authenticate(
26
- session_token:,
27
- session_duration_minutes: nil
26
+ session_token:,
27
+ session_duration_minutes: nil
28
28
  )
29
29
  request = {
30
- session_token: session_token
30
+ session_token: session_token
31
31
  }
32
32
 
33
33
  request[:session_duration_minutes] = session_duration_minutes unless session_duration_minutes.nil?
@@ -36,8 +36,8 @@ module Stytch
36
36
  end
37
37
 
38
38
  def revoke(
39
- session_id: nil,
40
- session_token: nil
39
+ session_id: nil,
40
+ session_token: nil
41
41
  )
42
42
  request = {}
43
43
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stytch
4
- VERSION = '2.2.0'
4
+ VERSION = '2.6.0'
5
5
  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: 2.2.0
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - stytch
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-31 00:00:00.000000000 Z
11
+ date: 2021-09-30 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
  - support@stytch.com
56
56
  executables: []
@@ -73,6 +73,7 @@ files:
73
73
  - lib/stytch/client.rb
74
74
  - lib/stytch/magic_links.rb
75
75
  - lib/stytch/middleware.rb
76
+ - lib/stytch/oauth.rb
76
77
  - lib/stytch/otps.rb
77
78
  - lib/stytch/request_helper.rb
78
79
  - lib/stytch/sessions.rb
@@ -85,7 +86,7 @@ licenses:
85
86
  metadata:
86
87
  homepage_uri: https://stytch.com
87
88
  source_code_uri: https://github.com/stytchauth/stytch-ruby
88
- post_install_message:
89
+ post_install_message:
89
90
  rdoc_options: []
90
91
  require_paths:
91
92
  - lib
@@ -100,8 +101,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
101
  - !ruby/object:Gem::Version
101
102
  version: '0'
102
103
  requirements: []
103
- rubygems_version: 3.1.4
104
- signing_key:
104
+ rubygems_version: 3.0.3
105
+ signing_key:
105
106
  specification_version: 4
106
107
  summary: Stytch Ruby Gem
107
108
  test_files: []