stytch 0.1.20 → 0.1.21

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: f433032f5886a7845a9ea6567dad3b080c604cf2f9f68dddf13e6370600f11fa
4
- data.tar.gz: 72a52e55e18c8c196b2df876bf9b469d8076695bf7059271e12f4b93a43d72e9
3
+ metadata.gz: 3f7f81b30c19471d94ea6c9c3dac52b2e50485bedd40429b66e395dd272aa2ee
4
+ data.tar.gz: 49ea0b78ec5b829011f2d3b2519b5d8abb1327d913ec7eb9bc678edd7bbe1976
5
5
  SHA512:
6
- metadata.gz: 3255290e7d8d28f36401441251c248901c0873c8fd61d2a32c10004c9cfed7a74a62d6c07e7afaa004e21e06c903c9bff1268521b5bcd4019e9f1e816b2cda1d
7
- data.tar.gz: 40e5b0f177e54ac5c27c33093b9c0f54fa3900c39587c802f4dfb26fc8b3f661e71dbb08482b0147f7af3bc0a3ad7edaec53a10c18efbdbd97269c83e14f3e0e
6
+ metadata.gz: 510b3a0466324f2349198f92ebb316e851d059f57f28ea2f349ac72d49b3ba01d721362cd613236b792472ade599bc6b2773d3f5c77f1e6844095a7d846bb3b8
7
+ data.tar.gz: a260451b3ed384fcec781780bde436699ac4ebb2ea24d8bc55f594cf1bb8982583f22d58dc5fe4dcdf9de6da7adfbb333f4c989f4ed5d0b75dc6c1dca2486df7
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
 
@@ -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
@@ -23,11 +23,13 @@ module Stytch
23
23
 
24
24
  def create_user(
25
25
  email:,
26
+ phone_number: nil,
26
27
  name: {},
27
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
49
  emails: format_emails(emails),
50
+ phone_numbers: format_phone_numbers(phone_numbers),
47
51
  }
48
52
 
49
53
  request[:name] = name if name != {}
@@ -63,6 +67,12 @@ module Stytch
63
67
  delete("#{PATH}/#{user_id}/emails/#{email}")
64
68
  end
65
69
 
70
+ def delete_user_phone_number(
71
+ phone_id:
72
+ )
73
+ delete("#{PATH}/phone_numbers/#{phone_id}")
74
+ end
75
+
66
76
  private
67
77
 
68
78
  def format_emails(emails)
@@ -70,6 +80,12 @@ module Stytch
70
80
  emails.each { |email| e << { email: email} }
71
81
  e
72
82
  end
83
+
84
+ def format_phone_numbers(phone_numbers)
85
+ p = []
86
+ phone_numbers.each { |phone_number| p << { phone_number: phone_number} }
87
+ p
88
+ end
73
89
  end
74
90
  end
75
91
  end
@@ -1,3 +1,3 @@
1
1
  module Stytch
2
- VERSION = "0.1.20"
2
+ VERSION = "0.1.21"
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.20
4
+ version: 0.1.21
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-04-22 00:00:00.000000000 Z
11
+ date: 2021-05-04 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: []