88 CHECK_USERNAME_AVAILABILITY ,
99 GENERATE_USERNAME_URL ,
1010 SELF_USER_PROFILE_URL ,
11- SELF_USERS_URL ,
11+ SELF_PROFILE_UPDATE_URL ,
1212} from '../constants/apis' ;
1313import {
1414 SIGNUP_ERROR_MESSAGES ,
@@ -30,14 +30,12 @@ export default class NewSignupController extends Controller {
3030 SECOND_STEP = NEW_SIGNUP_STEPS [ 1 ] ;
3131 THIRD_STEP = NEW_SIGNUP_STEPS [ 2 ] ;
3232 FOURTH_STEP = NEW_SIGNUP_STEPS [ 3 ] ;
33- FIFTH_STEP = NEW_SIGNUP_STEPS [ 4 ] ;
34- LAST_STEP = NEW_SIGNUP_STEPS [ 5 ] ;
33+ LAST_STEP = NEW_SIGNUP_STEPS [ 4 ] ;
3534
3635 @tracked signupDetails = {
3736 firstName : '' ,
3837 lastName : '' ,
39- username : '' ,
40- roles : { } ,
38+ role : '' ,
4139 } ;
4240
4341 get isDevMode ( ) {
@@ -80,22 +78,11 @@ export default class NewSignupController extends Controller {
8078 }
8179 }
8280
83- async registerUser ( user ) {
84- return await apiRequest ( SELF_USERS_URL , 'PATCH' , user ) ;
85- }
86-
87- async newRegisterUser ( signupDetails , roles ) {
81+ async registerUser ( signupDetails , devFlag ) {
8882 const getResponse = await apiRequest ( SELF_USER_PROFILE_URL ) ;
8983 const userData = await getResponse . json ( ) ;
90-
91- const res = await this . registerUser ( {
92- ...signupDetails ,
93- roles : {
94- ...userData . roles ,
95- ...roles ,
96- } ,
97- } ) ;
98-
84+ const url = SELF_PROFILE_UPDATE_URL ( userData ?. id , devFlag ) ;
85+ const res = await apiRequest ( url , 'PATCH' , signupDetails ) ;
9986 if ( ! res ) {
10087 throw new Error ( SIGNUP_ERROR_MESSAGES . others ) ;
10188 }
@@ -132,48 +119,40 @@ export default class NewSignupController extends Controller {
132119 else this . isButtonDisabled = true ;
133120 }
134121
135- @action handleCheckboxInputChange ( key , value ) {
136- set ( this . signupDetails . roles , key , value ) ;
137- if ( Object . values ( this . signupDetails . roles ) . includes ( true ) ) {
138- this . isButtonDisabled = false ;
139- } else {
140- this . isButtonDisabled = true ;
141- }
122+ @action handleRoleSelection ( selectedRole ) {
123+ this . signupDetails . role = selectedRole ;
124+ this . isButtonDisabled = ! selectedRole ;
142125 }
143126
144127 @action async signup ( ) {
145128 try {
146129 let username ;
130+ const { firstName, lastName, role } = this . signupDetails ;
147131 this . isLoading = true ;
148- if ( ! this . isDevMode )
149- username = await this . generateUsername (
150- this . signupDetails . firstName ,
151- this . signupDetails . lastName ,
152- ) ;
153- const signupDetails = {
154- first_name : this . signupDetails . firstName ,
155- last_name : this . signupDetails . lastName ,
156- username : this . isDevMode ? this . signupDetails . username : username ,
157- } ;
158- const roles = { } ;
159- Object . entries ( this . signupDetails . roles ) . forEach ( ( [ key , value ] ) => {
160- if ( value === true ) {
161- roles [ key ] = value ;
162- }
163- } ) ;
164132
165- const isUsernameAvailable = await this . checkUserName (
166- signupDetails . username ,
167- ) ;
168- if ( ! isUsernameAvailable ) {
169- this . isLoading = false ;
170- this . isButtonDisabled = false ;
171- return ( this . error = SIGNUP_ERROR_MESSAGES . userName ) ;
133+ if ( ! this . isDevMode ) {
134+ username = await this . generateUsername ( firstName , lastName ) ;
135+
136+ const isUsernameAvailable = await this . checkUserName ( username ) ;
137+
138+ if ( ! isUsernameAvailable ) {
139+ this . isLoading = false ;
140+ this . isButtonDisabled = false ;
141+ return ( this . error = SIGNUP_ERROR_MESSAGES . userName ) ;
142+ }
172143 }
173144
174- const res = this . isDevMode
175- ? await this . newRegisterUser ( signupDetails , roles )
176- : await this . registerUser ( signupDetails ) ;
145+ const basePayload = {
146+ first_name : firstName ,
147+ last_name : lastName ,
148+ } ;
149+
150+ const signupDetails = this . isDevMode
151+ ? { ...basePayload , role }
152+ : { ...basePayload , username } ;
153+
154+ const res = await this . registerUser ( signupDetails , this . isDevMode ) ;
155+
177156 if ( res ?. status === 204 ) {
178157 this . currentStep = this . LAST_STEP ;
179158 } else {
0 commit comments