2024-06-09 03:01:10 +03:00

68 lines
2.0 KiB
Java

package com.alterdekim.hearthhack.service;
import com.alterdekim.hearthhack.dto.UserDTO;
import com.alterdekim.hearthhack.entity.Role;
import com.alterdekim.hearthhack.entity.User;
import com.alterdekim.hearthhack.repository.RoleRepository;
import com.alterdekim.hearthhack.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@RequiredArgsConstructor
@Service
public class UserService implements IService {
private final UserRepository userRepository;
private final RoleRepository roleRepository;
private final PasswordEncoder passwordEncoder;
public void saveUser(UserDTO userDto) {
User user = new User();
user.setUsername(userDto.getUsername());
user.setDisplayName(userDto.getUsername());
user.setPassword(passwordEncoder.encode(userDto.getPassword()));
Role role = roleRepository.findByName("ROLE_USER");
if(role == null){
role = checkRoleExist();
}
user.setRoles(Collections.singletonList(role));
userRepository.save(user);
}
public User findByUsername(String username) {
return userRepository.findByUsername(username);
}
public List<UserDTO> findAllUsers() {
List<User> users = userRepository.findAll();
return users.stream().map(this::convertEntityToDto)
.collect(Collectors.toList());
}
public User findById(Long id) {
return userRepository.findById(id).orElse(null);
}
private UserDTO convertEntityToDto(User user){
UserDTO userDto = new UserDTO();
userDto.setUsername(user.getUsername());
return userDto;
}
private Role checkRoleExist() {
Role role = new Role();
role.setName("ROLE_USER");
return roleRepository.save(role);
}
}