login_radius 1.0.1 → 11.0.0.pre.beta

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 (36) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +21 -0
  3. data/README.md +58 -0
  4. data/lib/login_radius.rb +27 -9
  5. data/lib/login_radius/api/account/account_api.rb +581 -0
  6. data/lib/login_radius/api/account/role_api.rb +330 -0
  7. data/lib/login_radius/api/account/sott_api.rb +47 -0
  8. data/lib/login_radius/api/advanced/configuration_api.rb +57 -0
  9. data/lib/login_radius/api/advanced/consent_management_api.rb +161 -0
  10. data/lib/login_radius/api/advanced/custom_object_api.rb +316 -0
  11. data/lib/login_radius/api/advanced/custom_registration_data_api.rb +195 -0
  12. data/lib/login_radius/api/advanced/multi_factor_authentication_api.rb +606 -0
  13. data/lib/login_radius/api/advanced/re_authentication_api.rb +243 -0
  14. data/lib/login_radius/api/advanced/web_hook_api.rb +101 -0
  15. data/lib/login_radius/api/authentication/authentication_api.rb +989 -0
  16. data/lib/login_radius/api/authentication/one_touch_login_api.rb +160 -0
  17. data/lib/login_radius/api/authentication/password_less_login_api.rb +158 -0
  18. data/lib/login_radius/api/authentication/phone_authentication_api.rb +329 -0
  19. data/lib/login_radius/api/authentication/pin_authentication_api.rb +316 -0
  20. data/lib/login_radius/api/authentication/risk_based_authentication_api.rb +286 -0
  21. data/lib/login_radius/api/authentication/smart_login_api.rb +146 -0
  22. data/lib/login_radius/api/social/native_social_api.rb +255 -0
  23. data/lib/login_radius/api/social/social_api.rb +806 -0
  24. data/lib/login_radius/error.rb +7 -0
  25. data/lib/login_radius/request_client.rb +295 -0
  26. data/lib/login_radius/response.rb +12 -0
  27. data/lib/login_radius/version.rb +2 -2
  28. data/login_radius.gemspec +28 -0
  29. metadata +47 -30
  30. data/lib/hash.rb +0 -13
  31. data/lib/login_radius/exception.rb +0 -4
  32. data/lib/login_radius/messages.rb +0 -41
  33. data/lib/login_radius/related.rb +0 -34
  34. data/lib/login_radius/user_profile.rb +0 -101
  35. data/lib/login_radius/user_profile_getters.rb +0 -152
  36. data/lib/string.rb +0 -8
@@ -0,0 +1,330 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Created by LoginRadius Development Team
4
+ # Copyright 2019 LoginRadius Inc. All rights reserved.
5
+ require_relative '../../request_client'
6
+
7
+ module LoginRadius
8
+ # RoleApi module
9
+ class RoleApi
10
+ include RequestClient
11
+
12
+ attr_accessor :site_name, :api_key, :api_secret
13
+
14
+ # Initializes a LoginRadius Account object with an apikey and secret
15
+ # Takes in a hash containing site_name(required), api_key(required), api_secret(required)
16
+ def initialize
17
+ @site_name = ENV['SITE_NAME']
18
+ @api_key = ENV['API_KEY']
19
+ @api_secret = ENV['API_SECRET']
20
+ raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
21
+ unless @site_name != '' && @site_name != nil
22
+ raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
23
+ unless @api_key != '' && @api_key != nil
24
+ raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
25
+ unless @api_secret != '' && @api_secret != nil
26
+ end
27
+
28
+ # API is used to retrieve all the assigned roles of a particular User.
29
+ #
30
+ # @param uid - UID, the unified identifier for each user account
31
+ #
32
+ # @return Response containing Definition of Complete Roles data
33
+ # 18.6
34
+ def get_roles_by_uid(uid)
35
+ if isNullOrWhiteSpace(uid)
36
+ raise LoginRadius::Error.new, getValidationMessage('uid')
37
+ end
38
+
39
+ query_parameters = {}
40
+ query_parameters['apiKey'] = @api_key
41
+ query_parameters['apiSecret'] = @api_secret
42
+
43
+ resource_path = 'identity/v2/manage/account/' + uid + '/role'
44
+ get_request(resource_path, query_parameters, nil)
45
+ end
46
+
47
+ # This API is used to assign your desired roles to a given user.
48
+ #
49
+ # @param account_roles_model - Model Class containing Definition of payload for Create Role API
50
+ # @param uid - UID, the unified identifier for each user account
51
+ #
52
+ # @return Response containing Definition of Complete Roles data
53
+ # 18.7
54
+ def assign_roles_by_uid(account_roles_model, uid)
55
+ if account_roles_model.blank?
56
+ raise LoginRadius::Error.new, getValidationMessage('account_roles_model')
57
+ end
58
+ if isNullOrWhiteSpace(uid)
59
+ raise LoginRadius::Error.new, getValidationMessage('uid')
60
+ end
61
+
62
+ query_parameters = {}
63
+ query_parameters['apiKey'] = @api_key
64
+ query_parameters['apiSecret'] = @api_secret
65
+
66
+ resource_path = 'identity/v2/manage/account/' + uid + '/role'
67
+ put_request(resource_path, query_parameters, account_roles_model)
68
+ end
69
+
70
+ # This API is used to unassign roles from a user.
71
+ #
72
+ # @param account_roles_model - Model Class containing Definition of payload for Create Role API
73
+ # @param uid - UID, the unified identifier for each user account
74
+ #
75
+ # @return Response containing Definition of Delete Request
76
+ # 18.8
77
+ def unassign_roles_by_uid(account_roles_model, uid)
78
+ if account_roles_model.blank?
79
+ raise LoginRadius::Error.new, getValidationMessage('account_roles_model')
80
+ end
81
+ if isNullOrWhiteSpace(uid)
82
+ raise LoginRadius::Error.new, getValidationMessage('uid')
83
+ end
84
+
85
+ query_parameters = {}
86
+ query_parameters['apiKey'] = @api_key
87
+ query_parameters['apiSecret'] = @api_secret
88
+
89
+ resource_path = 'identity/v2/manage/account/' + uid + '/role'
90
+ delete_request(resource_path, query_parameters, account_roles_model)
91
+ end
92
+
93
+ # This API Gets the contexts that have been configured and the associated roles and permissions.
94
+ #
95
+ # @param uid - UID, the unified identifier for each user account
96
+ #
97
+ # @return Complete user RoleContext data
98
+ # 18.9
99
+ def get_role_context_by_uid(uid)
100
+ if isNullOrWhiteSpace(uid)
101
+ raise LoginRadius::Error.new, getValidationMessage('uid')
102
+ end
103
+
104
+ query_parameters = {}
105
+ query_parameters['apiKey'] = @api_key
106
+ query_parameters['apiSecret'] = @api_secret
107
+
108
+ resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext'
109
+ get_request(resource_path, query_parameters, nil)
110
+ end
111
+
112
+ # The API is used to retrieve role context by the context name.
113
+ #
114
+ # @param context_name - Name of context
115
+ #
116
+ # @return Complete user RoleContext data
117
+ # 18.10
118
+ def get_role_context_by_context_name(context_name)
119
+ if isNullOrWhiteSpace(context_name)
120
+ raise LoginRadius::Error.new, getValidationMessage('context_name')
121
+ end
122
+
123
+ query_parameters = {}
124
+ query_parameters['apiKey'] = @api_key
125
+ query_parameters['apiSecret'] = @api_secret
126
+
127
+ resource_path = 'identity/v2/manage/account/rolecontext/' + context_name
128
+ get_request(resource_path, query_parameters, nil)
129
+ end
130
+
131
+ # This API creates a Context with a set of Roles
132
+ #
133
+ # @param account_role_context_model - Model Class containing Definition of RoleContext payload
134
+ # @param uid - UID, the unified identifier for each user account
135
+ #
136
+ # @return Complete user RoleContext data
137
+ # 18.11
138
+ def update_role_context_by_uid(account_role_context_model, uid)
139
+ if account_role_context_model.blank?
140
+ raise LoginRadius::Error.new, getValidationMessage('account_role_context_model')
141
+ end
142
+ if isNullOrWhiteSpace(uid)
143
+ raise LoginRadius::Error.new, getValidationMessage('uid')
144
+ end
145
+
146
+ query_parameters = {}
147
+ query_parameters['apiKey'] = @api_key
148
+ query_parameters['apiSecret'] = @api_secret
149
+
150
+ resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext'
151
+ put_request(resource_path, query_parameters, account_role_context_model)
152
+ end
153
+
154
+ # This API Deletes the specified Role Context
155
+ #
156
+ # @param context_name - Name of context
157
+ # @param uid - UID, the unified identifier for each user account
158
+ #
159
+ # @return Response containing Definition of Delete Request
160
+ # 18.12
161
+ def delete_role_context_by_uid(context_name, uid)
162
+ if isNullOrWhiteSpace(context_name)
163
+ raise LoginRadius::Error.new, getValidationMessage('context_name')
164
+ end
165
+ if isNullOrWhiteSpace(uid)
166
+ raise LoginRadius::Error.new, getValidationMessage('uid')
167
+ end
168
+
169
+ query_parameters = {}
170
+ query_parameters['apiKey'] = @api_key
171
+ query_parameters['apiSecret'] = @api_secret
172
+
173
+ resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext/' + context_name
174
+ delete_request(resource_path, query_parameters, nil)
175
+ end
176
+
177
+ # This API Deletes the specified Role from a Context.
178
+ #
179
+ # @param context_name - Name of context
180
+ # @param role_context_remove_role_model - Model Class containing Definition of payload for RoleContextRemoveRole API
181
+ # @param uid - UID, the unified identifier for each user account
182
+ #
183
+ # @return Response containing Definition of Delete Request
184
+ # 18.13
185
+ def delete_roles_from_role_context_by_uid(context_name, role_context_remove_role_model, uid)
186
+ if isNullOrWhiteSpace(context_name)
187
+ raise LoginRadius::Error.new, getValidationMessage('context_name')
188
+ end
189
+ if role_context_remove_role_model.blank?
190
+ raise LoginRadius::Error.new, getValidationMessage('role_context_remove_role_model')
191
+ end
192
+ if isNullOrWhiteSpace(uid)
193
+ raise LoginRadius::Error.new, getValidationMessage('uid')
194
+ end
195
+
196
+ query_parameters = {}
197
+ query_parameters['apiKey'] = @api_key
198
+ query_parameters['apiSecret'] = @api_secret
199
+
200
+ resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext/' + context_name + '/role'
201
+ delete_request(resource_path, query_parameters, role_context_remove_role_model)
202
+ end
203
+
204
+ # This API Deletes Additional Permissions from Context.
205
+ #
206
+ # @param context_name - Name of context
207
+ # @param role_context_additional_permission_remove_role_model - Model Class containing Definition of payload for RoleContextAdditionalPermissionRemoveRole API
208
+ # @param uid - UID, the unified identifier for each user account
209
+ #
210
+ # @return Response containing Definition of Delete Request
211
+ # 18.14
212
+ def delete_additional_permission_from_role_context_by_uid(context_name, role_context_additional_permission_remove_role_model, uid)
213
+ if isNullOrWhiteSpace(context_name)
214
+ raise LoginRadius::Error.new, getValidationMessage('context_name')
215
+ end
216
+ if role_context_additional_permission_remove_role_model.blank?
217
+ raise LoginRadius::Error.new, getValidationMessage('role_context_additional_permission_remove_role_model')
218
+ end
219
+ if isNullOrWhiteSpace(uid)
220
+ raise LoginRadius::Error.new, getValidationMessage('uid')
221
+ end
222
+
223
+ query_parameters = {}
224
+ query_parameters['apiKey'] = @api_key
225
+ query_parameters['apiSecret'] = @api_secret
226
+
227
+ resource_path = 'identity/v2/manage/account/' + uid + '/rolecontext/' + context_name + '/additionalpermission'
228
+ delete_request(resource_path, query_parameters, role_context_additional_permission_remove_role_model)
229
+ end
230
+
231
+ # This API retrieves the complete list of created roles with permissions of your app.
232
+ #
233
+ #
234
+ # @return Complete user Roles List data
235
+ # 41.1
236
+ def get_roles_list()
237
+
238
+ query_parameters = {}
239
+ query_parameters['apiKey'] = @api_key
240
+ query_parameters['apiSecret'] = @api_secret
241
+
242
+ resource_path = 'identity/v2/manage/role'
243
+ get_request(resource_path, query_parameters, nil)
244
+ end
245
+
246
+ # This API creates a role with permissions.
247
+ #
248
+ # @param roles_model - Model Class containing Definition of payload for Roles API
249
+ #
250
+ # @return Complete user Roles data
251
+ # 41.2
252
+ def create_roles(roles_model)
253
+ if roles_model.blank?
254
+ raise LoginRadius::Error.new, getValidationMessage('roles_model')
255
+ end
256
+
257
+ query_parameters = {}
258
+ query_parameters['apiKey'] = @api_key
259
+ query_parameters['apiSecret'] = @api_secret
260
+
261
+ resource_path = 'identity/v2/manage/role'
262
+ post_request(resource_path, query_parameters, roles_model)
263
+ end
264
+
265
+ # This API is used to delete the role.
266
+ #
267
+ # @param role - Created RoleName
268
+ #
269
+ # @return Response containing Definition of Delete Request
270
+ # 41.3
271
+ def delete_role(role)
272
+ if isNullOrWhiteSpace(role)
273
+ raise LoginRadius::Error.new, getValidationMessage('role')
274
+ end
275
+
276
+ query_parameters = {}
277
+ query_parameters['apiKey'] = @api_key
278
+ query_parameters['apiSecret'] = @api_secret
279
+
280
+ resource_path = 'identity/v2/manage/role/' + role
281
+ delete_request(resource_path, query_parameters, nil)
282
+ end
283
+
284
+ # This API is used to add permissions to a given role.
285
+ #
286
+ # @param permissions_model - Model Class containing Definition for PermissionsModel Property
287
+ # @param role - Created RoleName
288
+ #
289
+ # @return Response containing Definition of Complete role data
290
+ # 41.4
291
+ def add_role_permissions(permissions_model, role)
292
+ if permissions_model.blank?
293
+ raise LoginRadius::Error.new, getValidationMessage('permissions_model')
294
+ end
295
+ if isNullOrWhiteSpace(role)
296
+ raise LoginRadius::Error.new, getValidationMessage('role')
297
+ end
298
+
299
+ query_parameters = {}
300
+ query_parameters['apiKey'] = @api_key
301
+ query_parameters['apiSecret'] = @api_secret
302
+
303
+ resource_path = 'identity/v2/manage/role/' + role + '/permission'
304
+ put_request(resource_path, query_parameters, permissions_model)
305
+ end
306
+
307
+ # API is used to remove permissions from a role.
308
+ #
309
+ # @param permissions_model - Model Class containing Definition for PermissionsModel Property
310
+ # @param role - Created RoleName
311
+ #
312
+ # @return Response containing Definition of Complete role data
313
+ # 41.5
314
+ def remove_role_permissions(permissions_model, role)
315
+ if permissions_model.blank?
316
+ raise LoginRadius::Error.new, getValidationMessage('permissions_model')
317
+ end
318
+ if isNullOrWhiteSpace(role)
319
+ raise LoginRadius::Error.new, getValidationMessage('role')
320
+ end
321
+
322
+ query_parameters = {}
323
+ query_parameters['apiKey'] = @api_key
324
+ query_parameters['apiSecret'] = @api_secret
325
+
326
+ resource_path = 'identity/v2/manage/role/' + role + '/permission'
327
+ delete_request(resource_path, query_parameters, permissions_model)
328
+ end
329
+ end
330
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Created by LoginRadius Development Team
4
+ # Copyright 2019 LoginRadius Inc. All rights reserved.
5
+ require_relative '../../request_client'
6
+
7
+ module LoginRadius
8
+ # SottApi module
9
+ class SottApi
10
+ include RequestClient
11
+
12
+ attr_accessor :site_name, :api_key, :api_secret
13
+
14
+ # Initializes a LoginRadius Account object with an apikey and secret
15
+ # Takes in a hash containing site_name(required), api_key(required), api_secret(required)
16
+ def initialize
17
+ @site_name = ENV['SITE_NAME']
18
+ @api_key = ENV['API_KEY']
19
+ @api_secret = ENV['API_SECRET']
20
+ raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
21
+ unless @site_name != '' && @site_name != nil
22
+ raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
23
+ unless @api_key != '' && @api_key != nil
24
+ raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
25
+ unless @api_secret != '' && @api_secret != nil
26
+ end
27
+
28
+ # This API allows you to generate SOTT with a given expiration time.
29
+ #
30
+ # @param time_difference - The time difference you would like to pass, If you not pass difference then the default value is 10 minutes
31
+ #
32
+ # @return Sott data For Registration
33
+ # 18.28
34
+ def generate_sott(time_difference = '')
35
+
36
+ query_parameters = {}
37
+ query_parameters['apiKey'] = @api_key
38
+ query_parameters['apiSecret'] = @api_secret
39
+ unless time_difference == false
40
+ query_parameters['timeDifference'] = time_difference
41
+ end
42
+
43
+ resource_path = 'identity/v2/manage/account/sott'
44
+ get_request(resource_path, query_parameters, nil)
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Created by LoginRadius Development Team
4
+ # Copyright 2019 LoginRadius Inc. All rights reserved.
5
+ require_relative '../../request_client'
6
+
7
+ module LoginRadius
8
+ # ConfigurationApi module
9
+ class ConfigurationApi
10
+ include RequestClient
11
+
12
+ attr_accessor :site_name, :api_key, :api_secret
13
+
14
+ # Initializes a LoginRadius Account object with an apikey and secret
15
+ # Takes in a hash containing site_name(required), api_key(required), api_secret(required)
16
+ def initialize
17
+ @site_name = ENV['SITE_NAME']
18
+ @api_key = ENV['API_KEY']
19
+ @api_secret = ENV['API_SECRET']
20
+ raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
21
+ unless @site_name != '' && @site_name != nil
22
+ raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
23
+ unless @api_key != '' && @api_key != nil
24
+ raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
25
+ unless @api_secret != '' && @api_secret != nil
26
+ end
27
+ # This API is used to get the configurations which are set in the LoginRadius Dashboard for a particular LoginRadius site/environment
28
+ #
29
+ # @return Response containing LoginRadius App configurations which are set in the LoginRadius Dashboard for a particular LoginRadius site/environment
30
+ # 100
31
+ def get_configurations()
32
+ resource_path = 'ciam/appinfo'
33
+ query_parameters = {}
34
+ query_parameters['apikey'] = @api_key
35
+
36
+ get_request(resource_path, query_parameters, nil)
37
+ end
38
+
39
+ # This API allows you to query your LoginRadius account for basic server information and server time information which is useful when generating an SOTT token.
40
+ #
41
+ # @param time_difference - The time difference you would like to pass, If you not pass difference then the default value is 10 minutes
42
+ #
43
+ # @return Response containing Definition of Complete service info data
44
+ # 3.1
45
+ def get_server_info(time_difference = '')
46
+
47
+ query_parameters = {}
48
+ query_parameters['apiKey'] = @api_key
49
+ unless time_difference == false
50
+ query_parameters['timeDifference'] = time_difference
51
+ end
52
+
53
+ resource_path = 'identity/v2/serverinfo'
54
+ get_request(resource_path, query_parameters, nil)
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,161 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Created by LoginRadius Development Team
4
+ # Copyright 2019 LoginRadius Inc. All rights reserved.
5
+ require_relative '../../request_client'
6
+
7
+ module LoginRadius
8
+ # ConsentManagementApi module
9
+ class ConsentManagementApi
10
+ include RequestClient
11
+
12
+ attr_accessor :site_name, :api_key, :api_secret
13
+
14
+ # Initializes a LoginRadius Account object with an apikey and secret
15
+ # Takes in a hash containing site_name(required), api_key(required), api_secret(required)
16
+ def initialize
17
+ @site_name = ENV['SITE_NAME']
18
+ @api_key = ENV['API_KEY']
19
+ @api_secret = ENV['API_SECRET']
20
+ raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
21
+ unless @site_name != '' && @site_name != nil
22
+ raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
23
+ unless @api_key != '' && @api_key != nil
24
+ raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
25
+ unless @api_secret != '' && @api_secret != nil
26
+ end
27
+
28
+ # This API is used to get the Consent logs of the user.
29
+ #
30
+ # @param uid - UID, the unified identifier for each user account
31
+ #
32
+ # @return Response containing consent logs
33
+ # 18.37
34
+ def get_consent_logs_by_uid(uid)
35
+ if isNullOrWhiteSpace(uid)
36
+ raise LoginRadius::Error.new, getValidationMessage('uid')
37
+ end
38
+
39
+ query_parameters = {}
40
+ query_parameters['apiKey'] = @api_key
41
+ query_parameters['apiSecret'] = @api_secret
42
+
43
+ resource_path = 'identity/v2/manage/account/' + uid + '/consent/logs'
44
+ get_request(resource_path, query_parameters, nil)
45
+ end
46
+
47
+ # This API is to submit consent form using consent token.
48
+ #
49
+ # @param consent_token - The consent token received after login error 1226
50
+ # @param consent_submit_model - Model class containing list of multiple consent
51
+ #
52
+ # @return Response containing User Profile Data and access token
53
+ # 43.1
54
+ def submit_consent_by_consent_token(consent_token, consent_submit_model)
55
+ if isNullOrWhiteSpace(consent_token)
56
+ raise LoginRadius::Error.new, getValidationMessage('consent_token')
57
+ end
58
+ if consent_submit_model.blank?
59
+ raise LoginRadius::Error.new, getValidationMessage('consent_submit_model')
60
+ end
61
+
62
+ query_parameters = {}
63
+ query_parameters['apiKey'] = @api_key
64
+ query_parameters['consentToken'] = consent_token
65
+
66
+ resource_path = 'identity/v2/auth/consent'
67
+ post_request(resource_path, query_parameters, consent_submit_model)
68
+ end
69
+
70
+ # This API is used to fetch consent logs.
71
+ #
72
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
73
+ #
74
+ # @return Response containing consent logs
75
+ # 43.2
76
+ def get_consent_logs(access_token)
77
+ if isNullOrWhiteSpace(access_token)
78
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
79
+ end
80
+
81
+ query_parameters = {}
82
+ query_parameters['access_token'] = access_token
83
+ query_parameters['apiKey'] = @api_key
84
+
85
+ resource_path = 'identity/v2/auth/consent/logs'
86
+ get_request(resource_path, query_parameters, nil)
87
+ end
88
+
89
+ # API to provide a way to end user to submit a consent form for particular event type.
90
+ #
91
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
92
+ # @param consent_submit_model - Model class containing list of multiple consent
93
+ #
94
+ # @return Response containing Definition for Complete profile data
95
+ # 43.3
96
+ def submit_consent_by_access_token(access_token, consent_submit_model)
97
+ if isNullOrWhiteSpace(access_token)
98
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
99
+ end
100
+ if consent_submit_model.blank?
101
+ raise LoginRadius::Error.new, getValidationMessage('consent_submit_model')
102
+ end
103
+
104
+ query_parameters = {}
105
+ query_parameters['access_token'] = access_token
106
+ query_parameters['apiKey'] = @api_key
107
+
108
+ resource_path = 'identity/v2/auth/consent/profile'
109
+ post_request(resource_path, query_parameters, consent_submit_model)
110
+ end
111
+
112
+ # This API is used to check if consent is submitted for a particular event or not.
113
+ #
114
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
115
+ # @param event - Allowed events: Login, Register, UpdateProfile, ResetPassword, ChangePassword, emailVerification, AddEmail, RemoveEmail, BlockAccount, DeleteAccount, SetUsername, AssignRoles, UnassignRoles, SetPassword, LinkAccount, UnlinkAccount, UpdatePhoneId, VerifyPhoneNumber, CreateCustomObject, UpdateCustomobject, DeleteCustomObject
116
+ # @param is_custom - true/false
117
+ #
118
+ # @return Response containing consent profile
119
+ # 43.4
120
+ def verify_consent_by_access_token(access_token, event, is_custom)
121
+ if isNullOrWhiteSpace(access_token)
122
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
123
+ end
124
+ if isNullOrWhiteSpace(event)
125
+ raise LoginRadius::Error.new, getValidationMessage('event')
126
+ end
127
+
128
+ query_parameters = {}
129
+ query_parameters['access_token'] = access_token
130
+ query_parameters['apiKey'] = @api_key
131
+ query_parameters['event'] = event
132
+ query_parameters['isCustom'] = is_custom
133
+
134
+ resource_path = 'identity/v2/auth/consent/verify'
135
+ get_request(resource_path, query_parameters, nil)
136
+ end
137
+
138
+ # This API is to update consents using access token.
139
+ #
140
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
141
+ # @param consent_update_model - Model class containg list of multiple consent
142
+ #
143
+ # @return Response containing consent profile
144
+ # 43.5
145
+ def update_consent_profile_by_access_token(access_token, consent_update_model)
146
+ if isNullOrWhiteSpace(access_token)
147
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
148
+ end
149
+ if consent_update_model.blank?
150
+ raise LoginRadius::Error.new, getValidationMessage('consent_update_model')
151
+ end
152
+
153
+ query_parameters = {}
154
+ query_parameters['access_token'] = access_token
155
+ query_parameters['apiKey'] = @api_key
156
+
157
+ resource_path = 'identity/v2/auth/consent'
158
+ put_request(resource_path, query_parameters, consent_update_model)
159
+ end
160
+ end
161
+ end