passageidentity 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +21 -0
- 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 +19 -8
- data/docs/generated/UpdateMagicLinkAuthMethod.md +0 -22
- data/docs/generated/UpdateOtpAuthMethod.md +0 -22
- data/docs/generated/UpdatePasskeysAuthMethod.md +0 -18
- /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.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-
|
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
|
-
|
File without changes
|
File without changes
|
File without changes
|