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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -2
- data/Gemfile +1 -1
- data/README.md +39 -21
- data/docs/generated/Link.md +18 -0
- data/docs/generated/ListPaginatedUsersItem.md +38 -0
- data/docs/generated/ListPaginatedUsersResponse.md +28 -0
- data/docs/generated/Model403Error.md +20 -0
- data/docs/generated/Nonce.md +18 -0
- data/docs/generated/PaginatedLinks.md +26 -0
- data/docs/generated/README.md +8 -3
- data/docs/generated/UserEventStatus.md +15 -0
- data/docs/generated/UserRecentEvent.md +4 -0
- data/docs/generated/UsersApi.md +94 -0
- data/lib/openapi_client/api/users_api.rb +96 -0
- data/lib/openapi_client/models/link.rb +221 -0
- data/lib/openapi_client/models/list_paginated_users_item.rb +399 -0
- data/lib/openapi_client/models/list_paginated_users_response.rb +305 -0
- data/lib/openapi_client/models/magic_link_auth_method.rb +0 -7
- data/lib/openapi_client/models/model401_error.rb +2 -2
- data/lib/openapi_client/models/model403_error.rb +271 -0
- data/lib/openapi_client/models/nonce.rb +222 -0
- data/lib/openapi_client/models/otp_auth_method.rb +0 -7
- data/lib/openapi_client/models/paginated_links.rb +285 -0
- data/lib/openapi_client/models/passkeys_auth_method.rb +0 -7
- data/lib/openapi_client/models/user_event_status.rb +40 -0
- data/lib/openapi_client/models/user_recent_event.rb +51 -1
- data/lib/openapi_client.rb +10 -3
- data/lib/passageidentity/user_api.rb +40 -0
- data/lib/passageidentity/version.rb +1 -1
- data/tests/user_api_test.rb +41 -0
- metadata +20 -9
- data/docs/generated/UpdateMagicLinkAuthMethod.md +0 -22
- data/docs/generated/UpdateOtpAuthMethod.md +0 -22
- data/docs/generated/UpdatePasskeysAuthMethod.md +0 -18
- /data/.github/workflows/{on_pr.yml → on-pull-request.yml} +0 -0
- /data/lib/{openapi_client/models → models}/update_magic_link_auth_method.rb +0 -0
- /data/lib/{openapi_client/models → models}/update_otp_auth_method.rb +0 -0
- /data/lib/{openapi_client/models → models}/update_passkeys_auth_method.rb +0 -0
data/lib/openapi_client.rb
CHANGED
@@ -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 '
|
47
|
-
require_relative '
|
48
|
-
require_relative '
|
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")
|
data/tests/user_api_test.rb
CHANGED
@@ -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.
|
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-
|
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/
|
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
|
-
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|