@@ -74,31 +74,34 @@ public async Task<Result<LoginResponse>> LoginAsync(string email, string passwor
7474 }
7575
7676 /// <summary>
77- /// Register a new user
77+ /// Register a new user. Returns tokens when email verification is not required.
7878 /// </summary>
79- public async Task < Result > RegisterAsync ( string email , string password ,
79+ public async Task < Result < LoginResponse ? > > RegisterAsync ( string email , string password ,
8080 CancellationToken cancellationToken = default )
8181 {
8282 // Validate password strength
8383 var validationError = ValidatePassword ( password ) ;
8484 if ( validationError != null )
8585 {
86- return Result . Failure ( Error . Validation ( ErrorCodes . Auth . PasswordMismatch , validationError ) ) ;
86+ return Result . Failure < LoginResponse ? > ( Error . Validation ( ErrorCodes . Auth . PasswordMismatch , validationError ) ) ;
8787 }
8888
8989 try
9090 {
9191 var request = new RegisterRequest ( email , password ) ;
92- _ = await identityClient . RegisterAsync ( request , cancellationToken ) ;
93- return Result . Success ( ) ;
92+ var response = await identityClient . RegisterAsync ( request , cancellationToken ) ;
93+ // When email verification is not required the server returns a full LoginResponse with tokens.
94+ // When verification is required it returns an anonymous message object, so AccessToken is null.
95+ return Result . Success < LoginResponse ? > (
96+ string . IsNullOrEmpty ( response ? . AccessToken ) ? null : response ) ;
9497 }
9598 catch ( Refit . ApiException ex )
9699 {
97- return ex . ToResult ( ) ;
100+ return ex . ToResult < LoginResponse ? > ( ) ;
98101 }
99102 catch ( Exception ex )
100103 {
101- return Result . Failure ( Error . Failure ( "ERR_REGISTRATION_FAILED" , ex . Message ) ) ;
104+ return Result . Failure < LoginResponse ? > ( Error . Failure ( "ERR_REGISTRATION_FAILED" , ex . Message ) ) ;
102105 }
103106 }
104107
0 commit comments