passageidentity 0.5.0 → 0.6.1

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -2
  3. data/Gemfile +1 -1
  4. data/README.md +39 -21
  5. data/docs/generated/Link.md +18 -0
  6. data/docs/generated/ListPaginatedUsersItem.md +38 -0
  7. data/docs/generated/ListPaginatedUsersResponse.md +28 -0
  8. data/docs/generated/Model403Error.md +20 -0
  9. data/docs/generated/Nonce.md +18 -0
  10. data/docs/generated/PaginatedLinks.md +26 -0
  11. data/docs/generated/README.md +8 -3
  12. data/docs/generated/UserEventStatus.md +15 -0
  13. data/docs/generated/UserRecentEvent.md +4 -0
  14. data/docs/generated/UsersApi.md +94 -0
  15. data/lib/openapi_client/api/users_api.rb +96 -0
  16. data/lib/openapi_client/models/link.rb +221 -0
  17. data/lib/openapi_client/models/list_paginated_users_item.rb +399 -0
  18. data/lib/openapi_client/models/list_paginated_users_response.rb +305 -0
  19. data/lib/openapi_client/models/magic_link_auth_method.rb +0 -7
  20. data/lib/openapi_client/models/model401_error.rb +2 -2
  21. data/lib/openapi_client/models/model403_error.rb +271 -0
  22. data/lib/openapi_client/models/nonce.rb +222 -0
  23. data/lib/openapi_client/models/otp_auth_method.rb +0 -7
  24. data/lib/openapi_client/models/paginated_links.rb +285 -0
  25. data/lib/openapi_client/models/passkeys_auth_method.rb +0 -7
  26. data/lib/openapi_client/models/user_event_status.rb +40 -0
  27. data/lib/openapi_client/models/user_recent_event.rb +51 -1
  28. data/lib/openapi_client.rb +10 -3
  29. data/lib/passageidentity/user_api.rb +40 -0
  30. data/lib/passageidentity/version.rb +1 -1
  31. data/tests/user_api_test.rb +41 -0
  32. metadata +20 -9
  33. data/docs/generated/UpdateMagicLinkAuthMethod.md +0 -22
  34. data/docs/generated/UpdateOtpAuthMethod.md +0 -22
  35. data/docs/generated/UpdatePasskeysAuthMethod.md +0 -18
  36. /data/.github/workflows/{on_pr.yml → on-pull-request.yml} +0 -0
  37. /data/lib/{openapi_client/models → models}/update_magic_link_auth_method.rb +0 -0
  38. /data/lib/{openapi_client/models → models}/update_otp_auth_method.rb +0 -0
  39. /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.1'
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.1
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-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -78,7 +78,7 @@ extensions: []
78
78
  extra_rdoc_files: []
79
79
  files:
80
80
  - ".github/workflows/deploy.yml"
81
- - ".github/workflows/on_pr.yml"
81
+ - ".github/workflows/on-pull-request.yml"
82
82
  - ".gitignore"
83
83
  - CHANGELOG.md
84
84
  - CONTRIBUTING.md
@@ -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
-