passageidentity 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +21 -0
  4. data/docs/generated/Link.md +18 -0
  5. data/docs/generated/ListPaginatedUsersItem.md +38 -0
  6. data/docs/generated/ListPaginatedUsersResponse.md +28 -0
  7. data/docs/generated/Model403Error.md +20 -0
  8. data/docs/generated/Nonce.md +18 -0
  9. data/docs/generated/PaginatedLinks.md +26 -0
  10. data/docs/generated/README.md +8 -3
  11. data/docs/generated/UserEventStatus.md +15 -0
  12. data/docs/generated/UserRecentEvent.md +4 -0
  13. data/docs/generated/UsersApi.md +94 -0
  14. data/lib/openapi_client/api/users_api.rb +96 -0
  15. data/lib/openapi_client/models/link.rb +221 -0
  16. data/lib/openapi_client/models/list_paginated_users_item.rb +399 -0
  17. data/lib/openapi_client/models/list_paginated_users_response.rb +305 -0
  18. data/lib/openapi_client/models/magic_link_auth_method.rb +0 -7
  19. data/lib/openapi_client/models/model401_error.rb +2 -2
  20. data/lib/openapi_client/models/model403_error.rb +271 -0
  21. data/lib/openapi_client/models/nonce.rb +222 -0
  22. data/lib/openapi_client/models/otp_auth_method.rb +0 -7
  23. data/lib/openapi_client/models/paginated_links.rb +285 -0
  24. data/lib/openapi_client/models/passkeys_auth_method.rb +0 -7
  25. data/lib/openapi_client/models/user_event_status.rb +40 -0
  26. data/lib/openapi_client/models/user_recent_event.rb +51 -1
  27. data/lib/openapi_client.rb +10 -3
  28. data/lib/passageidentity/user_api.rb +40 -0
  29. data/lib/passageidentity/version.rb +1 -1
  30. data/tests/user_api_test.rb +41 -0
  31. metadata +19 -8
  32. data/docs/generated/UpdateMagicLinkAuthMethod.md +0 -22
  33. data/docs/generated/UpdateOtpAuthMethod.md +0 -22
  34. data/docs/generated/UpdatePasskeysAuthMethod.md +0 -18
  35. /data/lib/{openapi_client/models → models}/update_magic_link_auth_method.rb +0 -0
  36. /data/lib/{openapi_client/models → models}/update_otp_auth_method.rb +0 -0
  37. /data/lib/{openapi_client/models → models}/update_passkeys_auth_method.rb +0 -0
@@ -29,7 +29,10 @@ require_relative 'openapi_client/models/github_user_social_connection'
29
29
  require_relative 'openapi_client/models/google_user_social_connection'
30
30
  require_relative 'openapi_client/models/layout_config'
31
31
  require_relative 'openapi_client/models/layouts'
32
+ require_relative 'openapi_client/models/link'
32
33
  require_relative 'openapi_client/models/list_devices_response'
34
+ require_relative 'openapi_client/models/list_paginated_users_item'
35
+ require_relative 'openapi_client/models/list_paginated_users_response'
33
36
  require_relative 'openapi_client/models/magic_link'
34
37
  require_relative 'openapi_client/models/magic_link_auth_method'
35
38
  require_relative 'openapi_client/models/magic_link_channel'
@@ -37,16 +40,20 @@ require_relative 'openapi_client/models/magic_link_response'
37
40
  require_relative 'openapi_client/models/magic_link_type'
38
41
  require_relative 'openapi_client/models/model400_error'
39
42
  require_relative 'openapi_client/models/model401_error'
43
+ require_relative 'openapi_client/models/model403_error'
40
44
  require_relative 'openapi_client/models/model404_error'
41
45
  require_relative 'openapi_client/models/model500_error'
46
+ require_relative 'openapi_client/models/nonce'
42
47
  require_relative 'openapi_client/models/otp_auth_method'
48
+ require_relative 'openapi_client/models/paginated_links'
43
49
  require_relative 'openapi_client/models/passkeys_auth_method'
44
50
  require_relative 'openapi_client/models/technologies'
45
51
  require_relative 'openapi_client/models/ttl_display_unit'
46
- require_relative 'openapi_client/models/update_magic_link_auth_method'
47
- require_relative 'openapi_client/models/update_otp_auth_method'
48
- require_relative 'openapi_client/models/update_passkeys_auth_method'
52
+ require_relative 'models/update_magic_link_auth_method'
53
+ require_relative 'models/update_otp_auth_method'
54
+ require_relative 'models/update_passkeys_auth_method'
49
55
  require_relative 'openapi_client/models/update_user_request'
56
+ require_relative 'openapi_client/models/user_event_status'
50
57
  require_relative 'openapi_client/models/user_info'
51
58
  require_relative 'openapi_client/models/user_metadata_field'
52
59
  require_relative 'openapi_client/models/user_metadata_field_type'
@@ -42,6 +42,40 @@ module Passage
42
42
  end
43
43
  end
44
44
 
45
+ def get_by_identifier(user_identifier:)
46
+ identifier_exists?(user_identifier)
47
+
48
+ begin
49
+ @req_opts[:limit] = 1
50
+ @req_opts[:identifier] = user_identifier.downcase
51
+ response = @user_client.list_paginated_users(@app_id, @req_opts)
52
+ users = response.users
53
+
54
+ if users.length() == 0
55
+ raise PassageError.new(
56
+ message: "Passage User with identifer \"#{user_identifier}\" does not exist",
57
+ status_code: 404,
58
+ body: "user_not_found"
59
+ )
60
+ end
61
+ return get(user_id: users.first().id)
62
+ rescue Faraday::Error => e
63
+ if e.is_a? Faraday::ResourceNotFound
64
+ raise PassageError.new(
65
+ message: "Passage User with identifer \"#{user_identifier}\" does not exist",
66
+ status_code: e.response[:status],
67
+ body: e.response[:body]
68
+ )
69
+ else
70
+ raise PassageError.new(
71
+ message: "failed to get Passage User.",
72
+ status_code: e.response[:status],
73
+ body: e.response[:body]
74
+ )
75
+ end
76
+ end
77
+ end
78
+
45
79
  def activate(user_id:)
46
80
  user_exists?(user_id)
47
81
 
@@ -210,6 +244,12 @@ module Passage
210
244
  end
211
245
  end
212
246
 
247
+ def identifier_exists?(identifier)
248
+ if identifier.to_s.empty?
249
+ raise PassageError.new(message: "must supply a valid identifier")
250
+ end
251
+ end
252
+
213
253
  def device_exists?(device_id)
214
254
  if device_id.to_s.empty?
215
255
  raise PassageError.new(message: "must supply a valid device_id")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Passage
4
- VERSION = '0.5.0'
4
+ VERSION = '0.6.0'
5
5
  end
@@ -37,6 +37,47 @@ class TestUserAPI < Test::Unit::TestCase
37
37
  assert_equal $global_test_user.id, user.id
38
38
  end
39
39
 
40
+ def test_get_user_by_identifier()
41
+ user = PassageClient.user.get(user_id: $global_test_user.id)
42
+ assert_equal $global_test_user.id, user.id
43
+
44
+ user_by_identifier = PassageClient.user.get_by_identifier(user_identifier: $global_test_user.email)
45
+ assert_equal $global_test_user.id, user_by_identifier.id
46
+
47
+ assert_equal user, user_by_identifier
48
+ end
49
+
50
+ def test_get_user_by_identifier_upper_case()
51
+ user = PassageClient.user.get(user_id: $global_test_user.id)
52
+ assert_equal $global_test_user.id, user.id
53
+
54
+ user_by_identifier = PassageClient.user.get_by_identifier(user_identifier: $global_test_user.email.upcase)
55
+ assert_equal $global_test_user.id, user_by_identifier.id
56
+
57
+ assert_equal user, user_by_identifier
58
+ end
59
+
60
+ def test_get_user_by_identifier_phone()
61
+ $phone = "+15005550007"
62
+ create_user = PassageClient.user.create(
63
+ phone: $phone,
64
+ )
65
+ user = PassageClient.user.get(user_id: create_user.id)
66
+ assert_equal create_user.id, user.id
67
+
68
+ user_by_identifier = PassageClient.user.get_by_identifier(user_identifier: $phone)
69
+ assert_equal create_user.id, user_by_identifier.id
70
+
71
+ assert_equal user, user_by_identifier
72
+ end
73
+
74
+ def test_invalid_get_user_by_identifier()
75
+ user = PassageClient.user.get(user_id: $global_test_user.id)
76
+ assert_equal $global_test_user.id, user.id
77
+
78
+ assert_raise (Passage::PassageError) {PassageClient.user.get_by_identifier(user_identifier: "error@passage.id")}
79
+ end
80
+
40
81
  def test_deactivate_user()
41
82
  user = PassageClient.user.deactivate(user_id: $global_test_user.id)
42
83
  assert_equal $global_test_user.id, user.id
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passageidentity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Passage Identity
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-30 00:00:00.000000000 Z
11
+ date: 2024-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -101,7 +101,10 @@ files:
101
101
  - docs/generated/GoogleUserSocialConnection.md
102
102
  - docs/generated/LayoutConfig.md
103
103
  - docs/generated/Layouts.md
104
+ - docs/generated/Link.md
104
105
  - docs/generated/ListDevicesResponse.md
106
+ - docs/generated/ListPaginatedUsersItem.md
107
+ - docs/generated/ListPaginatedUsersResponse.md
105
108
  - docs/generated/MagicLink.md
106
109
  - docs/generated/MagicLinkAuthMethod.md
107
110
  - docs/generated/MagicLinkChannel.md
@@ -110,19 +113,20 @@ files:
110
113
  - docs/generated/MagicLinksApi.md
111
114
  - docs/generated/Model400Error.md
112
115
  - docs/generated/Model401Error.md
116
+ - docs/generated/Model403Error.md
113
117
  - docs/generated/Model404Error.md
114
118
  - docs/generated/Model500Error.md
119
+ - docs/generated/Nonce.md
115
120
  - docs/generated/OtpAuthMethod.md
121
+ - docs/generated/PaginatedLinks.md
116
122
  - docs/generated/PasskeysAuthMethod.md
117
123
  - docs/generated/README.md
118
124
  - docs/generated/Technologies.md
119
125
  - docs/generated/TokensApi.md
120
126
  - docs/generated/TtlDisplayUnit.md
121
- - docs/generated/UpdateMagicLinkAuthMethod.md
122
- - docs/generated/UpdateOtpAuthMethod.md
123
- - docs/generated/UpdatePasskeysAuthMethod.md
124
127
  - docs/generated/UpdateUserRequest.md
125
128
  - docs/generated/UserDevicesApi.md
129
+ - docs/generated/UserEventStatus.md
126
130
  - docs/generated/UserInfo.md
127
131
  - docs/generated/UserMetadataField.md
128
132
  - docs/generated/UserMetadataFieldType.md
@@ -135,6 +139,9 @@ files:
135
139
  - docs/generated/WebAuthnIcons.md
136
140
  - docs/generated/WebAuthnType.md
137
141
  - generate.sh
142
+ - lib/models/update_magic_link_auth_method.rb
143
+ - lib/models/update_otp_auth_method.rb
144
+ - lib/models/update_passkeys_auth_method.rb
138
145
  - lib/openapi_client.rb
139
146
  - lib/openapi_client/api/apps_api.rb
140
147
  - lib/openapi_client/api/magic_links_api.rb
@@ -156,7 +163,10 @@ files:
156
163
  - lib/openapi_client/models/google_user_social_connection.rb
157
164
  - lib/openapi_client/models/layout_config.rb
158
165
  - lib/openapi_client/models/layouts.rb
166
+ - lib/openapi_client/models/link.rb
159
167
  - lib/openapi_client/models/list_devices_response.rb
168
+ - lib/openapi_client/models/list_paginated_users_item.rb
169
+ - lib/openapi_client/models/list_paginated_users_response.rb
160
170
  - lib/openapi_client/models/magic_link.rb
161
171
  - lib/openapi_client/models/magic_link_auth_method.rb
162
172
  - lib/openapi_client/models/magic_link_channel.rb
@@ -164,16 +174,17 @@ files:
164
174
  - lib/openapi_client/models/magic_link_type.rb
165
175
  - lib/openapi_client/models/model400_error.rb
166
176
  - lib/openapi_client/models/model401_error.rb
177
+ - lib/openapi_client/models/model403_error.rb
167
178
  - lib/openapi_client/models/model404_error.rb
168
179
  - lib/openapi_client/models/model500_error.rb
180
+ - lib/openapi_client/models/nonce.rb
169
181
  - lib/openapi_client/models/otp_auth_method.rb
182
+ - lib/openapi_client/models/paginated_links.rb
170
183
  - lib/openapi_client/models/passkeys_auth_method.rb
171
184
  - lib/openapi_client/models/technologies.rb
172
185
  - lib/openapi_client/models/ttl_display_unit.rb
173
- - lib/openapi_client/models/update_magic_link_auth_method.rb
174
- - lib/openapi_client/models/update_otp_auth_method.rb
175
- - lib/openapi_client/models/update_passkeys_auth_method.rb
176
186
  - lib/openapi_client/models/update_user_request.rb
187
+ - lib/openapi_client/models/user_event_status.rb
177
188
  - lib/openapi_client/models/user_info.rb
178
189
  - lib/openapi_client/models/user_metadata_field.rb
179
190
  - lib/openapi_client/models/user_metadata_field_type.rb
@@ -1,22 +0,0 @@
1
- # OpenapiClient::UpdateMagicLinkAuthMethod
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **enabled** | **Boolean** | | [optional] |
8
- | **ttl** | **Integer** | Maximum time (IN SECONDS) for the auth to expire. | [optional][default to 300] |
9
- | **ttl_display_unit** | [**TtlDisplayUnit**](TtlDisplayUnit.md) | | [optional] |
10
-
11
- ## Example
12
-
13
- ```ruby
14
- require 'openapi_client'
15
-
16
- instance = OpenapiClient::UpdateMagicLinkAuthMethod.new(
17
- enabled: null,
18
- ttl: null,
19
- ttl_display_unit: null
20
- )
21
- ```
22
-
@@ -1,22 +0,0 @@
1
- # OpenapiClient::UpdateOtpAuthMethod
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **enabled** | **Boolean** | | [optional] |
8
- | **ttl** | **Integer** | Maximum time (IN SECONDS) for the auth to expire. | [optional][default to 300] |
9
- | **ttl_display_unit** | [**TtlDisplayUnit**](TtlDisplayUnit.md) | | [optional] |
10
-
11
- ## Example
12
-
13
- ```ruby
14
- require 'openapi_client'
15
-
16
- instance = OpenapiClient::UpdateOtpAuthMethod.new(
17
- enabled: null,
18
- ttl: null,
19
- ttl_display_unit: null
20
- )
21
- ```
22
-
@@ -1,18 +0,0 @@
1
- # OpenapiClient::UpdatePasskeysAuthMethod
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **enabled** | **Boolean** | | [optional][default to true] |
8
-
9
- ## Example
10
-
11
- ```ruby
12
- require 'openapi_client'
13
-
14
- instance = OpenapiClient::UpdatePasskeysAuthMethod.new(
15
- enabled: null
16
- )
17
- ```
18
-