diff options
| author | realtradam <[email protected]> | 2024-07-13 00:28:07 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2024-07-13 00:28:07 -0400 |
| commit | 3ea4cd2f9b3808ef645092816d888de406580e6d (patch) | |
| tree | 81cc8005f1ae329bd1cbb65def26b53ff495134d /src/main/java/com/blog/web/services | |
| parent | d0e45a9093b33d4e5cb5f57fabdcb807dc8e8ff0 (diff) | |
| download | spring-blog-3ea4cd2f9b3808ef645092816d888de406580e6d.tar.gz spring-blog-3ea4cd2f9b3808ef645092816d888de406580e6d.zip | |
implement user registration
Diffstat (limited to 'src/main/java/com/blog/web/services')
3 files changed, 60 insertions, 0 deletions
diff --git a/src/main/java/com/blog/web/services/ArticleService.java b/src/main/java/com/blog/web/services/ArticleService.java index 9cab70b..2c1e9f4 100644 --- a/src/main/java/com/blog/web/services/ArticleService.java +++ b/src/main/java/com/blog/web/services/ArticleService.java @@ -5,6 +5,7 @@ import com.blog.web.models.Article; import java.util.List; + public interface ArticleService { List<ArticleDto> findAllArticles(); diff --git a/src/main/java/com/blog/web/services/UserService.java b/src/main/java/com/blog/web/services/UserService.java new file mode 100644 index 0000000..8515cb1 --- /dev/null +++ b/src/main/java/com/blog/web/services/UserService.java @@ -0,0 +1,13 @@ +package com.blog.web.services; + +import com.blog.web.dto.RegistrationDto; +import com.blog.web.models.UserEntity; + + +public interface UserService { + void saveUser(RegistrationDto registrationDto); + + UserEntity findByEmail(String email); + + UserEntity findByUsername(String username); +} diff --git a/src/main/java/com/blog/web/services/impl/UserServiceImpl.java b/src/main/java/com/blog/web/services/impl/UserServiceImpl.java new file mode 100644 index 0000000..06dbc22 --- /dev/null +++ b/src/main/java/com/blog/web/services/impl/UserServiceImpl.java @@ -0,0 +1,46 @@ +package com.blog.web.services.impl; + +import com.blog.web.dto.RegistrationDto; +import com.blog.web.models.Role; +import com.blog.web.models.UserEntity; +import com.blog.web.repository.RoleRepository; +import com.blog.web.repository.UserRepository; +import com.blog.web.services.UserService; +import org.springframework.stereotype.Service; + +import java.util.Arrays; + +@Service +public class UserServiceImpl implements UserService { + private UserRepository userRepository; + private RoleRepository roleRepository; + + public UserServiceImpl(UserRepository userRepository, RoleRepository roleRepository) { + this.userRepository = userRepository; + this.roleRepository = roleRepository; + } + + @Override + public void saveUser(RegistrationDto registrationDto) { + UserEntity user = new UserEntity(); + user.setUsername(registrationDto.getUsername()); + user.setEmail(registrationDto.getEmail()); + // this is an unsafe way to store passwords in production + // it is left this way only because this is a practice project + user.setPassword(registrationDto.getPassword()); + + Role role = roleRepository.findByName("User"); + user.setRoles(Arrays.asList(role)); + userRepository.save(user); + } + + @Override + public UserEntity findByEmail(String email) { + return userRepository.findByEmail(email); + } + + @Override + public UserEntity findByUsername(String username) { + return userRepository.findByUsername(username); + } +} |
