72.4 User service implementation - Refactored UserDto to use Role instead of String (#8)

This commit is contained in:
Art
2021-09-09 15:10:59 +03:00
parent 4d9fae3b4e
commit 83198982e3
5 changed files with 9 additions and 8 deletions

View File

@ -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;

View File

@ -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);
}

View File

@ -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());

View File

@ -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();
}

View File

@ -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);
};