diff --git a/SurveyBackend/SurveyBackend.API/Controllers/AuthController.cs b/SurveyBackend/SurveyBackend.API/Controllers/AuthController.cs index 7a2e115..882c94b 100644 --- a/SurveyBackend/SurveyBackend.API/Controllers/AuthController.cs +++ b/SurveyBackend/SurveyBackend.API/Controllers/AuthController.cs @@ -26,7 +26,7 @@ public class AuthController : ControllerBase [HttpPost("register")] public async Task Register([FromBody] UserRegistrationDto registerData) { - await _authorizationService.RegisterUser(UserRegistrationMapper.UserRegistrationToModel(registerData)); - return Ok(); + var token = await _authorizationService.RegisterUser(UserRegistrationMapper.UserRegistrationToModel(registerData)); + return Ok(new { token = token }); } } \ No newline at end of file diff --git a/SurveyBackend/SurveyBackend.Core/Services/IAuthorizationService.cs b/SurveyBackend/SurveyBackend.Core/Services/IAuthorizationService.cs index 2af6ec7..0237a22 100644 --- a/SurveyBackend/SurveyBackend.Core/Services/IAuthorizationService.cs +++ b/SurveyBackend/SurveyBackend.Core/Services/IAuthorizationService.cs @@ -5,5 +5,5 @@ namespace SurveyBackend.Core.Services; public interface IAuthorizationService { public Task LogInUser(string email, string password); - public Task RegisterUser(User user); + public Task RegisterUser(User user); } \ No newline at end of file diff --git a/SurveyBackend/SurveyBackend.Core/Services/IUserService.cs b/SurveyBackend/SurveyBackend.Core/Services/IUserService.cs index c341a4a..cd34c76 100644 --- a/SurveyBackend/SurveyBackend.Core/Services/IUserService.cs +++ b/SurveyBackend/SurveyBackend.Core/Services/IUserService.cs @@ -5,5 +5,6 @@ namespace SurveyBackend.Core.Services; public interface IUserService { public Task GetUserByEmail(string email); + public Task IsEmailTaken(string email); public Task CreateUserAsync(User user); } \ No newline at end of file diff --git a/SurveyBackend/SurveyBackend.Services/Services/AuthorizationService.cs b/SurveyBackend/SurveyBackend.Services/Services/AuthorizationService.cs index 4a0e006..772eb27 100644 --- a/SurveyBackend/SurveyBackend.Services/Services/AuthorizationService.cs +++ b/SurveyBackend/SurveyBackend.Services/Services/AuthorizationService.cs @@ -28,10 +28,10 @@ public class AuthorizationService : IAuthorizationService return token; } - public async Task RegisterUser(User user) + public async Task RegisterUser(User user) { - var existingUser = await _userService.GetUserByEmail(user.Email); - if (existingUser is not null) + var isEmailTaken = await _userService.IsEmailTaken(user.Email); + if (isEmailTaken) { throw new ConflictException("Email already exists"); } @@ -39,5 +39,7 @@ public class AuthorizationService : IAuthorizationService user.Password = _passwordHasher.HashPassword(user.Password); await _userService.CreateUserAsync(user); + var token = TokenHelper.GetAuthToken(user); + return token; } } \ No newline at end of file diff --git a/SurveyBackend/SurveyBackend.Services/Services/UserService.cs b/SurveyBackend/SurveyBackend.Services/Services/UserService.cs index eea4ee7..9c52a64 100644 --- a/SurveyBackend/SurveyBackend.Services/Services/UserService.cs +++ b/SurveyBackend/SurveyBackend.Services/Services/UserService.cs @@ -19,6 +19,11 @@ public class UserService : IUserService return await _userRepository.GetUserByEmail(email) ?? throw new NotFoundException("Email not found"); } + public async Task IsEmailTaken(string email) + { + return await _userRepository.GetUserByEmail(email) != null; + } + public async Task CreateUserAsync(User user) { await _userRepository.AddAsync(user);