72.4 User service implementation - Refactored UserDto to use Role instead of String (#8)
This commit is contained in:
@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.Role;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@Data
|
||||
@ -15,7 +16,7 @@ public class UserDto {
|
||||
private String lastName;
|
||||
private String username;
|
||||
private String email;
|
||||
private String role;
|
||||
private Role role;
|
||||
private boolean isNonLocked;
|
||||
private boolean isActive;
|
||||
private MultipartFile profileImage;
|
||||
|
||||
@ -13,6 +13,8 @@ public interface UserMapper {
|
||||
@Mapping(target = "isNotLocked", source = "nonLocked")
|
||||
@Mapping(target = "isActive", source = "active")
|
||||
@Mapping(target = "joinDate", expression = "java( LocalDateTime.now() )")
|
||||
@Mapping(target = "role", source = "role", resultType = String.class)
|
||||
@Mapping(target = "authorities", source = "role.authorities")
|
||||
User toEntity(UserDto userDto);
|
||||
|
||||
}
|
||||
|
||||
@ -76,7 +76,7 @@ public class UserServiceImpl implements UserService {
|
||||
.username(username)
|
||||
.isActive(true)
|
||||
.isNonLocked(true)
|
||||
.role(defaultRole.name())
|
||||
.role(defaultRole)
|
||||
.build();
|
||||
return addNewUser(newUserDto);
|
||||
}
|
||||
@ -126,15 +126,11 @@ public class UserServiceImpl implements UserService {
|
||||
String rawPassword = generatePassword();
|
||||
String encodedPassword = passwordEncoder.encode(rawPassword);
|
||||
|
||||
Role role = Role.valueOf(userDto.getRole());
|
||||
|
||||
User newUser = userMapper.toEntity(userDto);
|
||||
|
||||
newUser.setPassword(encodedPassword);
|
||||
newUser.setUserId(generateUserId());
|
||||
newUser.setProfileImageUrl(getTemporaryProfileImageUrl(username));
|
||||
newUser.setRole(role.name());
|
||||
newUser.setAuthorities(role.getAuthorities());
|
||||
|
||||
userRepository.save(newUser);
|
||||
saveProfileImage(newUser, userDto.getProfileImage());
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package net.shyshkin.study.fullstack.supportportal.backend.common;
|
||||
|
||||
import com.github.javafaker.Faker;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.Role;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.User;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.dto.UserDto;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.repository.UserRepository;
|
||||
@ -49,7 +50,7 @@ public abstract class BaseUserTest {
|
||||
.username(FAKER.name().username())
|
||||
.isActive(true)
|
||||
.isNonLocked(true)
|
||||
.role("ROLE_ADMIN")
|
||||
.role(Role.ROLE_ADMIN)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ package net.shyshkin.study.fullstack.supportportal.backend.service;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.common.BaseUserTest;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.Role;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.User;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.dto.UserDto;
|
||||
import org.assertj.core.api.ThrowableAssert;
|
||||
@ -92,10 +93,10 @@ class UserServiceTest extends BaseUserTest {
|
||||
|
||||
//given
|
||||
UserDto randomUserDto = createRandomUserDto();
|
||||
randomUserDto.setRole("FAKE_ROLE");
|
||||
|
||||
//when
|
||||
ThrowableAssert.ThrowingCallable execution = () -> {
|
||||
randomUserDto.setRole(Role.valueOf("FAKE_ROLE"));
|
||||
User user = userService.addNewUser(randomUserDto);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user