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.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import net.shyshkin.study.fullstack.supportportal.backend.domain.Role;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@Data @Data
@ -15,7 +16,7 @@ public class UserDto {
private String lastName; private String lastName;
private String username; private String username;
private String email; private String email;
private String role; private Role role;
private boolean isNonLocked; private boolean isNonLocked;
private boolean isActive; private boolean isActive;
private MultipartFile profileImage; private MultipartFile profileImage;

View File

@ -13,6 +13,8 @@ public interface UserMapper {
@Mapping(target = "isNotLocked", source = "nonLocked") @Mapping(target = "isNotLocked", source = "nonLocked")
@Mapping(target = "isActive", source = "active") @Mapping(target = "isActive", source = "active")
@Mapping(target = "joinDate", expression = "java( LocalDateTime.now() )") @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); User toEntity(UserDto userDto);
} }

View File

@ -76,7 +76,7 @@ public class UserServiceImpl implements UserService {
.username(username) .username(username)
.isActive(true) .isActive(true)
.isNonLocked(true) .isNonLocked(true)
.role(defaultRole.name()) .role(defaultRole)
.build(); .build();
return addNewUser(newUserDto); return addNewUser(newUserDto);
} }
@ -126,15 +126,11 @@ public class UserServiceImpl implements UserService {
String rawPassword = generatePassword(); String rawPassword = generatePassword();
String encodedPassword = passwordEncoder.encode(rawPassword); String encodedPassword = passwordEncoder.encode(rawPassword);
Role role = Role.valueOf(userDto.getRole());
User newUser = userMapper.toEntity(userDto); User newUser = userMapper.toEntity(userDto);
newUser.setPassword(encodedPassword); newUser.setPassword(encodedPassword);
newUser.setUserId(generateUserId()); newUser.setUserId(generateUserId());
newUser.setProfileImageUrl(getTemporaryProfileImageUrl(username)); newUser.setProfileImageUrl(getTemporaryProfileImageUrl(username));
newUser.setRole(role.name());
newUser.setAuthorities(role.getAuthorities());
userRepository.save(newUser); userRepository.save(newUser);
saveProfileImage(newUser, userDto.getProfileImage()); saveProfileImage(newUser, userDto.getProfileImage());

View File

@ -1,6 +1,7 @@
package net.shyshkin.study.fullstack.supportportal.backend.common; package net.shyshkin.study.fullstack.supportportal.backend.common;
import com.github.javafaker.Faker; 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.User;
import net.shyshkin.study.fullstack.supportportal.backend.domain.dto.UserDto; import net.shyshkin.study.fullstack.supportportal.backend.domain.dto.UserDto;
import net.shyshkin.study.fullstack.supportportal.backend.repository.UserRepository; import net.shyshkin.study.fullstack.supportportal.backend.repository.UserRepository;
@ -49,7 +50,7 @@ public abstract class BaseUserTest {
.username(FAKER.name().username()) .username(FAKER.name().username())
.isActive(true) .isActive(true)
.isNonLocked(true) .isNonLocked(true)
.role("ROLE_ADMIN") .role(Role.ROLE_ADMIN)
.build(); .build();
} }

View File

@ -2,6 +2,7 @@ package net.shyshkin.study.fullstack.supportportal.backend.service;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.shyshkin.study.fullstack.supportportal.backend.common.BaseUserTest; 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.User;
import net.shyshkin.study.fullstack.supportportal.backend.domain.dto.UserDto; import net.shyshkin.study.fullstack.supportportal.backend.domain.dto.UserDto;
import org.assertj.core.api.ThrowableAssert; import org.assertj.core.api.ThrowableAssert;
@ -92,10 +93,10 @@ class UserServiceTest extends BaseUserTest {
//given //given
UserDto randomUserDto = createRandomUserDto(); UserDto randomUserDto = createRandomUserDto();
randomUserDto.setRole("FAKE_ROLE");
//when //when
ThrowableAssert.ThrowingCallable execution = () -> { ThrowableAssert.ThrowingCallable execution = () -> {
randomUserDto.setRole(Role.valueOf("FAKE_ROLE"));
User user = userService.addNewUser(randomUserDto); User user = userService.addNewUser(randomUserDto);
}; };