login_radius 3.0.0 → 10.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 (39) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +21 -0
  3. data/README.md +58 -52
  4. data/lib/login_radius.rb +30 -15
  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 +986 -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 +193 -0
  23. data/lib/login_radius/api/social/social_api.rb +802 -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 +3 -3
  28. data/login_radius.gemspec +36 -0
  29. metadata +61 -20
  30. data/LICENSE +0 -22
  31. data/lib/hash.rb +0 -12
  32. data/lib/login_radius/advanced_api.rb +0 -133
  33. data/lib/login_radius/authentication_api.rb +0 -597
  34. data/lib/login_radius/exception.rb +0 -4
  35. data/lib/login_radius/management_api.rb +0 -327
  36. data/lib/login_radius/rest_request.rb +0 -142
  37. data/lib/login_radius/social_api.rb +0 -402
  38. data/lib/login_radius/two_fa_api.rb +0 -191
  39. data/lib/string.rb +0 -8
@@ -0,0 +1,160 @@
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
+ # OneTouchLoginApi module
9
+ class OneTouchLoginApi
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 send a link to a specified email for a frictionless login/registration
29
+ #
30
+ # @param one_touch_login_by_email_model - Model Class containing Definition of payload for OneTouchLogin By EmailModel API
31
+ # @param one_touch_login_email_template - Name of the One Touch Login Email Template
32
+ # @param redirecturl - Url where the user will redirect after success authentication
33
+ # @param welcomeemailtemplate - Name of the welcome email template
34
+ #
35
+ # @return Response containing Definition of Complete Validation data
36
+ # 1.2
37
+ def one_touch_login_by_email(one_touch_login_by_email_model, one_touch_login_email_template = '', redirecturl = '', welcomeemailtemplate = '')
38
+ if one_touch_login_by_email_model.blank?
39
+ raise LoginRadius::Error.new, getValidationMessage('one_touch_login_by_email_model')
40
+ end
41
+
42
+ query_parameters = {}
43
+ query_parameters['apiKey'] = @api_key
44
+ unless isNullOrWhiteSpace(one_touch_login_email_template)
45
+ query_parameters['oneTouchLoginEmailTemplate'] = one_touch_login_email_template
46
+ end
47
+ unless isNullOrWhiteSpace(redirecturl)
48
+ query_parameters['redirecturl'] = redirecturl
49
+ end
50
+ unless isNullOrWhiteSpace(welcomeemailtemplate)
51
+ query_parameters['welcomeemailtemplate'] = welcomeemailtemplate
52
+ end
53
+
54
+ resource_path = 'identity/v2/auth/onetouchlogin/email'
55
+ post_request(resource_path, query_parameters, one_touch_login_by_email_model)
56
+ end
57
+
58
+ # This API is used to send one time password to a given phone number for a frictionless login/registration.
59
+ #
60
+ # @param one_touch_login_by_phone_model - Model Class containing Definition of payload for OneTouchLogin By PhoneModel API
61
+ # @param sms_template - SMS Template name
62
+ #
63
+ # @return Response containing Definition of Complete Validation data
64
+ # 1.4
65
+ def one_touch_login_by_phone(one_touch_login_by_phone_model, sms_template = '')
66
+ if one_touch_login_by_phone_model.blank?
67
+ raise LoginRadius::Error.new, getValidationMessage('one_touch_login_by_phone_model')
68
+ end
69
+
70
+ query_parameters = {}
71
+ query_parameters['apiKey'] = @api_key
72
+ unless isNullOrWhiteSpace(sms_template)
73
+ query_parameters['smsTemplate'] = sms_template
74
+ end
75
+
76
+ resource_path = 'identity/v2/auth/onetouchlogin/phone'
77
+ post_request(resource_path, query_parameters, one_touch_login_by_phone_model)
78
+ end
79
+
80
+ # This API is used to verify the otp for One Touch Login.
81
+ #
82
+ # @param otp - The Verification Code
83
+ # @param phone - New Phone Number
84
+ # @param fields - The fields parameter filters the API response so that the response only includes a specific set of fields
85
+ # @param sms_template - SMS Template name
86
+ #
87
+ # @return Response Containing Access Token and Complete Profile Data
88
+ # 1.5
89
+ def one_touch_login_otp_verification(otp, phone, fields = '', sms_template = '')
90
+ if isNullOrWhiteSpace(otp)
91
+ raise LoginRadius::Error.new, getValidationMessage('otp')
92
+ end
93
+ if isNullOrWhiteSpace(phone)
94
+ raise LoginRadius::Error.new, getValidationMessage('phone')
95
+ end
96
+
97
+ query_parameters = {}
98
+ query_parameters['apiKey'] = @api_key
99
+ query_parameters['otp'] = otp
100
+ unless isNullOrWhiteSpace(fields)
101
+ query_parameters['fields'] = fields
102
+ end
103
+ unless isNullOrWhiteSpace(sms_template)
104
+ query_parameters['smsTemplate'] = sms_template
105
+ end
106
+
107
+ body_parameters = {}
108
+ body_parameters['phone'] = phone
109
+
110
+ resource_path = 'identity/v2/auth/onetouchlogin/phone/verify'
111
+ put_request(resource_path, query_parameters, body_parameters)
112
+ end
113
+
114
+ # This API verifies the provided token for One Touch Login
115
+ #
116
+ # @param verification_token - Verification token received in the email
117
+ # @param welcome_email_template - Name of the welcome email template
118
+ #
119
+ # @return Complete verified response data
120
+ # 8.4.2
121
+ def one_touch_email_verification(verification_token, welcome_email_template = '')
122
+ if isNullOrWhiteSpace(verification_token)
123
+ raise LoginRadius::Error.new, getValidationMessage('verification_token')
124
+ end
125
+
126
+ query_parameters = {}
127
+ query_parameters['apiKey'] = @api_key
128
+ query_parameters['verificationToken'] = verification_token
129
+ unless isNullOrWhiteSpace(welcome_email_template)
130
+ query_parameters['welcomeEmailTemplate'] = welcome_email_template
131
+ end
132
+
133
+ resource_path = 'identity/v2/auth/email/onetouchlogin'
134
+ get_request(resource_path, query_parameters, nil)
135
+ end
136
+
137
+ # This API is used to check if the One Touch Login link has been clicked or not.
138
+ #
139
+ # @param client_guid - Unique string used in the Smart Login request
140
+ # @param fields - The fields parameter filters the API response so that the response only includes a specific set of fields
141
+ #
142
+ # @return Response containing User Profile Data and access token
143
+ # 9.21.2
144
+ def one_touch_login_ping(client_guid, fields = '')
145
+ if isNullOrWhiteSpace(client_guid)
146
+ raise LoginRadius::Error.new, getValidationMessage('client_guid')
147
+ end
148
+
149
+ query_parameters = {}
150
+ query_parameters['apiKey'] = @api_key
151
+ query_parameters['clientGuid'] = client_guid
152
+ unless isNullOrWhiteSpace(fields)
153
+ query_parameters['fields'] = fields
154
+ end
155
+
156
+ resource_path = 'identity/v2/auth/login/smartlogin/ping'
157
+ get_request(resource_path, query_parameters, nil)
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,158 @@
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
+ # PasswordLessLoginApi module
9
+ class PasswordLessLoginApi
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 verifies an account by OTP and allows the customer to login.
29
+ #
30
+ # @param password_less_login_otp_model - Model Class containing Definition of payload for PasswordLessLoginOtpModel API
31
+ # @param fields - The fields parameter filters the API response so that the response only includes a specific set of fields
32
+ # @param sms_template - SMS Template name
33
+ #
34
+ # @return Response containing User Profile Data and access token
35
+ # 9.6
36
+ def passwordless_login_phone_verification(password_less_login_otp_model, fields = '', sms_template = '')
37
+ if password_less_login_otp_model.blank?
38
+ raise LoginRadius::Error.new, getValidationMessage('password_less_login_otp_model')
39
+ end
40
+
41
+ query_parameters = {}
42
+ query_parameters['apiKey'] = @api_key
43
+ unless isNullOrWhiteSpace(fields)
44
+ query_parameters['fields'] = fields
45
+ end
46
+ unless isNullOrWhiteSpace(sms_template)
47
+ query_parameters['smsTemplate'] = sms_template
48
+ end
49
+
50
+ resource_path = 'identity/v2/auth/login/passwordlesslogin/otp/verify'
51
+ put_request(resource_path, query_parameters, password_less_login_otp_model)
52
+ end
53
+
54
+ # API can be used to send a One-time Passcode (OTP) provided that the account has a verified PhoneID
55
+ #
56
+ # @param phone - The Registered Phone Number
57
+ # @param sms_template - SMS Template name
58
+ #
59
+ # @return Response Containing Definition of SMS Data
60
+ # 9.15
61
+ def passwordless_login_by_phone(phone, sms_template = '')
62
+ if isNullOrWhiteSpace(phone)
63
+ raise LoginRadius::Error.new, getValidationMessage('phone')
64
+ end
65
+
66
+ query_parameters = {}
67
+ query_parameters['apiKey'] = @api_key
68
+ query_parameters['phone'] = phone
69
+ unless isNullOrWhiteSpace(sms_template)
70
+ query_parameters['smsTemplate'] = sms_template
71
+ end
72
+
73
+ resource_path = 'identity/v2/auth/login/passwordlesslogin/otp'
74
+ get_request(resource_path, query_parameters, nil)
75
+ end
76
+
77
+ # This API is used to send a Passwordless Login verification link to the provided Email ID
78
+ #
79
+ # @param email - Email of the user
80
+ # @param password_less_login_template - Passwordless Login Template Name
81
+ # @param verification_url - Email verification url
82
+ #
83
+ # @return Response containing Definition of Complete Validation data
84
+ # 9.18.1
85
+ def passwordless_login_by_email(email, password_less_login_template = '', verification_url = '')
86
+ if isNullOrWhiteSpace(email)
87
+ raise LoginRadius::Error.new, getValidationMessage('email')
88
+ end
89
+
90
+ query_parameters = {}
91
+ query_parameters['apiKey'] = @api_key
92
+ query_parameters['email'] = email
93
+ unless isNullOrWhiteSpace(password_less_login_template)
94
+ query_parameters['passwordLessLoginTemplate'] = password_less_login_template
95
+ end
96
+ unless isNullOrWhiteSpace(verification_url)
97
+ query_parameters['verificationUrl'] = verification_url
98
+ end
99
+
100
+ resource_path = 'identity/v2/auth/login/passwordlesslogin/email'
101
+ get_request(resource_path, query_parameters, nil)
102
+ end
103
+
104
+ # This API is used to send a Passwordless Login Verification Link to a customer by providing their UserName
105
+ #
106
+ # @param username - UserName of the user
107
+ # @param password_less_login_template - Passwordless Login Template Name
108
+ # @param verification_url - Email verification url
109
+ #
110
+ # @return Response containing Definition of Complete Validation data
111
+ # 9.18.2
112
+ def passwordless_login_by_user_name(username, password_less_login_template = '', verification_url = '')
113
+ if isNullOrWhiteSpace(username)
114
+ raise LoginRadius::Error.new, getValidationMessage('username')
115
+ end
116
+
117
+ query_parameters = {}
118
+ query_parameters['apiKey'] = @api_key
119
+ query_parameters['username'] = username
120
+ unless isNullOrWhiteSpace(password_less_login_template)
121
+ query_parameters['passwordLessLoginTemplate'] = password_less_login_template
122
+ end
123
+ unless isNullOrWhiteSpace(verification_url)
124
+ query_parameters['verificationUrl'] = verification_url
125
+ end
126
+
127
+ resource_path = 'identity/v2/auth/login/passwordlesslogin/email'
128
+ get_request(resource_path, query_parameters, nil)
129
+ end
130
+
131
+ # This API is used to verify the Passwordless Login verification link. Note: If you are using Passwordless Login by Phone you will need to use the Passwordless Login Phone Verification API
132
+ #
133
+ # @param verification_token - Verification token received in the email
134
+ # @param fields - The fields parameter filters the API response so that the response only includes a specific set of fields
135
+ # @param welcome_email_template - Name of the welcome email template
136
+ #
137
+ # @return Response containing User Profile Data and access token
138
+ # 9.19
139
+ def passwordless_login_verification(verification_token, fields = '', welcome_email_template = '')
140
+ if isNullOrWhiteSpace(verification_token)
141
+ raise LoginRadius::Error.new, getValidationMessage('verification_token')
142
+ end
143
+
144
+ query_parameters = {}
145
+ query_parameters['apikey'] = @api_key
146
+ query_parameters['verificationToken'] = verification_token
147
+ unless isNullOrWhiteSpace(fields)
148
+ query_parameters['fields'] = fields
149
+ end
150
+ unless isNullOrWhiteSpace(welcome_email_template)
151
+ query_parameters['welcomeEmailTemplate'] = welcome_email_template
152
+ end
153
+
154
+ resource_path = 'identity/v2/auth/login/passwordlesslogin/email/verify'
155
+ get_request(resource_path, query_parameters, nil)
156
+ end
157
+ end
158
+ end
@@ -0,0 +1,329 @@
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
+ # PhoneAuthenticationApi module
9
+ class PhoneAuthenticationApi
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 retrieves a copy of the user data based on the Phone
29
+ #
30
+ # @param phone_authentication_model - Model Class containing Definition of payload for PhoneAuthenticationModel API
31
+ # @param fields - The fields parameter filters the API response so that the response only includes a specific set of fields
32
+ # @param login_url - Url where the user is logging from
33
+ # @param sms_template - SMS Template name
34
+ #
35
+ # @return Response containing User Profile Data and access token
36
+ # 9.2.3
37
+ def login_by_phone(phone_authentication_model, fields = '', login_url = '', sms_template = '')
38
+ if phone_authentication_model.blank?
39
+ raise LoginRadius::Error.new, getValidationMessage('phone_authentication_model')
40
+ end
41
+
42
+ query_parameters = {}
43
+ query_parameters['apiKey'] = @api_key
44
+ unless isNullOrWhiteSpace(fields)
45
+ query_parameters['fields'] = fields
46
+ end
47
+ unless isNullOrWhiteSpace(login_url)
48
+ query_parameters['loginUrl'] = login_url
49
+ end
50
+ unless isNullOrWhiteSpace(sms_template)
51
+ query_parameters['smsTemplate'] = sms_template
52
+ end
53
+
54
+ resource_path = 'identity/v2/auth/login'
55
+ post_request(resource_path, query_parameters, phone_authentication_model)
56
+ end
57
+
58
+ # This API is used to send the OTP to reset the account password.
59
+ #
60
+ # @param phone - New Phone Number
61
+ # @param sms_template - SMS Template name
62
+ #
63
+ # @return Response Containing Validation Data and SMS Data
64
+ # 10.4
65
+ def forgot_password_by_phone_otp(phone, sms_template = '')
66
+ if isNullOrWhiteSpace(phone)
67
+ raise LoginRadius::Error.new, getValidationMessage('phone')
68
+ end
69
+
70
+ query_parameters = {}
71
+ query_parameters['apiKey'] = @api_key
72
+ unless isNullOrWhiteSpace(sms_template)
73
+ query_parameters['smsTemplate'] = sms_template
74
+ end
75
+
76
+ body_parameters = {}
77
+ body_parameters['phone'] = phone
78
+
79
+ resource_path = 'identity/v2/auth/password/otp'
80
+ post_request(resource_path, query_parameters, body_parameters)
81
+ end
82
+
83
+ # This API is used to reset the password
84
+ #
85
+ # @param reset_password_by_otp_model - Model Class containing Definition of payload for ResetPasswordByOTP API
86
+ #
87
+ # @return Response containing Definition of Complete Validation data
88
+ # 10.5
89
+ def reset_password_by_phone_otp(reset_password_by_otp_model)
90
+ if reset_password_by_otp_model.blank?
91
+ raise LoginRadius::Error.new, getValidationMessage('reset_password_by_otp_model')
92
+ end
93
+
94
+ query_parameters = {}
95
+ query_parameters['apiKey'] = @api_key
96
+
97
+ resource_path = 'identity/v2/auth/password/otp'
98
+ put_request(resource_path, query_parameters, reset_password_by_otp_model)
99
+ end
100
+
101
+ # This API is used to validate the verification code sent to verify a user's phone number
102
+ #
103
+ # @param otp - The Verification Code
104
+ # @param phone - New Phone Number
105
+ # @param fields - The fields parameter filters the API response so that the response only includes a specific set of fields
106
+ # @param sms_template - SMS Template name
107
+ #
108
+ # @return Response containing User Profile Data and access token
109
+ # 11.1.1
110
+ def phone_verification_by_otp(otp, phone, fields = '', sms_template = '')
111
+ if isNullOrWhiteSpace(otp)
112
+ raise LoginRadius::Error.new, getValidationMessage('otp')
113
+ end
114
+ if isNullOrWhiteSpace(phone)
115
+ raise LoginRadius::Error.new, getValidationMessage('phone')
116
+ end
117
+
118
+ query_parameters = {}
119
+ query_parameters['apiKey'] = @api_key
120
+ query_parameters['otp'] = otp
121
+ unless isNullOrWhiteSpace(fields)
122
+ query_parameters['fields'] = fields
123
+ end
124
+ unless isNullOrWhiteSpace(sms_template)
125
+ query_parameters['smsTemplate'] = sms_template
126
+ end
127
+
128
+ body_parameters = {}
129
+ body_parameters['phone'] = phone
130
+
131
+ resource_path = 'identity/v2/auth/phone/otp'
132
+ put_request(resource_path, query_parameters, body_parameters)
133
+ end
134
+
135
+ # This API is used to consume the verification code sent to verify a user's phone number. Use this call for front-end purposes in cases where the user is already logged in by passing the user's access token.
136
+ #
137
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
138
+ # @param otp - The Verification Code
139
+ # @param sms_template - SMS Template name
140
+ #
141
+ # @return Response containing Definition of Complete Validation data
142
+ # 11.1.2
143
+ def phone_verification_otp_by_access_token(access_token, otp, sms_template = '')
144
+ if isNullOrWhiteSpace(access_token)
145
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
146
+ end
147
+ if isNullOrWhiteSpace(otp)
148
+ raise LoginRadius::Error.new, getValidationMessage('otp')
149
+ end
150
+
151
+ query_parameters = {}
152
+ query_parameters['access_token'] = access_token
153
+ query_parameters['apiKey'] = @api_key
154
+ query_parameters['otp'] = otp
155
+ unless isNullOrWhiteSpace(sms_template)
156
+ query_parameters['smsTemplate'] = sms_template
157
+ end
158
+
159
+ resource_path = 'identity/v2/auth/phone/otp'
160
+ put_request(resource_path, query_parameters, nil)
161
+ end
162
+
163
+ # This API is used to resend a verification OTP to verify a user's Phone Number. The user will receive a verification code that they will need to input
164
+ #
165
+ # @param phone - New Phone Number
166
+ # @param sms_template - SMS Template name
167
+ #
168
+ # @return Response Containing Validation Data and SMS Data
169
+ # 11.2.1
170
+ def phone_resend_verification_otp(phone, sms_template = '')
171
+ if isNullOrWhiteSpace(phone)
172
+ raise LoginRadius::Error.new, getValidationMessage('phone')
173
+ end
174
+
175
+ query_parameters = {}
176
+ query_parameters['apiKey'] = @api_key
177
+ unless isNullOrWhiteSpace(sms_template)
178
+ query_parameters['smsTemplate'] = sms_template
179
+ end
180
+
181
+ body_parameters = {}
182
+ body_parameters['phone'] = phone
183
+
184
+ resource_path = 'identity/v2/auth/phone/otp'
185
+ post_request(resource_path, query_parameters, body_parameters)
186
+ end
187
+
188
+ # This API is used to resend a verification OTP to verify a user's Phone Number in cases in which an active token already exists
189
+ #
190
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
191
+ # @param phone - New Phone Number
192
+ # @param sms_template - SMS Template name
193
+ #
194
+ # @return Response Containing Validation Data and SMS Data
195
+ # 11.2.2
196
+ def phone_resend_verification_otp_by_token(access_token, phone, sms_template = '')
197
+ if isNullOrWhiteSpace(access_token)
198
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
199
+ end
200
+ if isNullOrWhiteSpace(phone)
201
+ raise LoginRadius::Error.new, getValidationMessage('phone')
202
+ end
203
+
204
+ query_parameters = {}
205
+ query_parameters['access_token'] = access_token
206
+ query_parameters['apiKey'] = @api_key
207
+ unless isNullOrWhiteSpace(sms_template)
208
+ query_parameters['smsTemplate'] = sms_template
209
+ end
210
+
211
+ body_parameters = {}
212
+ body_parameters['phone'] = phone
213
+
214
+ resource_path = 'identity/v2/auth/phone/otp'
215
+ post_request(resource_path, query_parameters, body_parameters)
216
+ end
217
+
218
+ # This API is used to update the login Phone Number of users
219
+ #
220
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
221
+ # @param phone - New Phone Number
222
+ # @param sms_template - SMS Template name
223
+ #
224
+ # @return Response Containing Validation Data and SMS Data
225
+ # 11.5
226
+ def update_phone_number(access_token, phone, sms_template = '')
227
+ if isNullOrWhiteSpace(access_token)
228
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
229
+ end
230
+ if isNullOrWhiteSpace(phone)
231
+ raise LoginRadius::Error.new, getValidationMessage('phone')
232
+ end
233
+
234
+ query_parameters = {}
235
+ query_parameters['access_token'] = access_token
236
+ query_parameters['apiKey'] = @api_key
237
+ unless isNullOrWhiteSpace(sms_template)
238
+ query_parameters['smsTemplate'] = sms_template
239
+ end
240
+
241
+ body_parameters = {}
242
+ body_parameters['phone'] = phone
243
+
244
+ resource_path = 'identity/v2/auth/phone'
245
+ put_request(resource_path, query_parameters, body_parameters)
246
+ end
247
+
248
+ # This API is used to check the Phone Number exists or not on your site.
249
+ #
250
+ # @param phone - The Registered Phone Number
251
+ #
252
+ # @return Response containing Definition Complete ExistResponse data
253
+ # 11.6
254
+ def check_phone_number_availability(phone)
255
+ if isNullOrWhiteSpace(phone)
256
+ raise LoginRadius::Error.new, getValidationMessage('phone')
257
+ end
258
+
259
+ query_parameters = {}
260
+ query_parameters['apiKey'] = @api_key
261
+ query_parameters['phone'] = phone
262
+
263
+ resource_path = 'identity/v2/auth/phone'
264
+ get_request(resource_path, query_parameters, nil)
265
+ end
266
+
267
+ # This API is used to delete the Phone ID on a user's account via the access token
268
+ #
269
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
270
+ #
271
+ # @return Response containing Definition of Delete Request
272
+ # 11.7
273
+ def remove_phone_id_by_access_token(access_token)
274
+ if isNullOrWhiteSpace(access_token)
275
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
276
+ end
277
+
278
+ query_parameters = {}
279
+ query_parameters['access_token'] = access_token
280
+ query_parameters['apiKey'] = @api_key
281
+
282
+ resource_path = 'identity/v2/auth/phone'
283
+ delete_request(resource_path, query_parameters, nil)
284
+ end
285
+
286
+ # This API registers the new users into your Cloud Storage and triggers the phone verification process.
287
+ #
288
+ # @param auth_user_registration_model - Model Class containing Definition of payload for Auth User Registration API
289
+ # @param sott - LoginRadius Secured One Time Token
290
+ # @param fields - The fields parameter filters the API response so that the response only includes a specific set of fields
291
+ # @param options - PreventVerificationEmail (Specifying this value prevents the verification email from being sent. Only applicable if you have the optional email verification flow)
292
+ # @param sms_template - SMS Template name
293
+ # @param verification_url - Email verification url
294
+ # @param welcome_email_template - Name of the welcome email template
295
+ #
296
+ # @return Response containing Definition of Complete Validation, UserProfile data and Access Token
297
+ # 17.1.2
298
+ def user_registration_by_phone(auth_user_registration_model, sott, fields = '', options = '', sms_template = '', verification_url = '', welcome_email_template = '')
299
+ if auth_user_registration_model.blank?
300
+ raise LoginRadius::Error.new, getValidationMessage('auth_user_registration_model')
301
+ end
302
+ if isNullOrWhiteSpace(sott)
303
+ raise LoginRadius::Error.new, getValidationMessage('sott')
304
+ end
305
+
306
+ query_parameters = {}
307
+ query_parameters['apiKey'] = @api_key
308
+ query_parameters['sott'] = sott
309
+ unless isNullOrWhiteSpace(fields)
310
+ query_parameters['fields'] = fields
311
+ end
312
+ unless isNullOrWhiteSpace(options)
313
+ query_parameters['options'] = options
314
+ end
315
+ unless isNullOrWhiteSpace(sms_template)
316
+ query_parameters['smsTemplate'] = sms_template
317
+ end
318
+ unless isNullOrWhiteSpace(verification_url)
319
+ query_parameters['verificationUrl'] = verification_url
320
+ end
321
+ unless isNullOrWhiteSpace(welcome_email_template)
322
+ query_parameters['welcomeEmailTemplate'] = welcome_email_template
323
+ end
324
+
325
+ resource_path = 'identity/v2/auth/register'
326
+ post_request(resource_path, query_parameters, auth_user_registration_model)
327
+ end
328
+ end
329
+ end