81.2 Correct URL for default and custom profile image (#9)

This commit is contained in:
Art
2021-09-10 17:57:54 +03:00
parent d411f0f1a5
commit 199b96f654
2 changed files with 16 additions and 4 deletions

View File

@ -102,6 +102,13 @@ public class UserServiceImpl implements UserService {
return addNewUser(newUserDto); return addNewUser(newUserDto);
} }
private String generateDefaultProfileImageUrl(String userId) {
return ServletUriComponentsBuilder.fromCurrentContextPath()
.path(DEFAULT_USER_IMAGE_PATH)
.pathSegment(userId)
.toUriString();
}
private String generateProfileImageUrl(String userId) { private String generateProfileImageUrl(String userId) {
return ServletUriComponentsBuilder.fromCurrentContextPath() return ServletUriComponentsBuilder.fromCurrentContextPath()
.path(DEFAULT_USER_IMAGE_PATH) .path(DEFAULT_USER_IMAGE_PATH)
@ -152,7 +159,7 @@ public class UserServiceImpl implements UserService {
newUser.setPassword(encodedPassword); newUser.setPassword(encodedPassword);
newUser.setUserId(generateUserId()); newUser.setUserId(generateUserId());
newUser.setProfileImageUrl(generateProfileImageUrl(newUser.getUserId())); newUser.setProfileImageUrl(generateDefaultProfileImageUrl(newUser.getUserId()));
userRepository.save(newUser); userRepository.save(newUser);
saveProfileImage(newUser, userDto.getProfileImage()); saveProfileImage(newUser, userDto.getProfileImage());
@ -178,6 +185,9 @@ public class UserServiceImpl implements UserService {
} }
profileImage.transferTo(userFolder.resolve(USER_IMAGE_FILENAME)); profileImage.transferTo(userFolder.resolve(USER_IMAGE_FILENAME));
log.debug(FILE_SAVED_IN_FILE_SYSTEM + profileImage.getOriginalFilename()); log.debug(FILE_SAVED_IN_FILE_SYSTEM + profileImage.getOriginalFilename());
user.setProfileImageUrl(generateProfileImageUrl(user.getUserId()));
userRepository.save(user);
} catch (IOException exception) { } catch (IOException exception) {
log.error("Can't save to file", exception); log.error("Can't save to file", exception);
} }

View File

@ -610,7 +610,8 @@ class UserResourceUnSecureTest extends BaseUserTest {
.hasFieldOrPropertyWithValue("lastName", user.getLastName()) .hasFieldOrPropertyWithValue("lastName", user.getLastName())
.hasFieldOrPropertyWithValue("isActive", user.isActive()) .hasFieldOrPropertyWithValue("isActive", user.isActive())
.hasFieldOrPropertyWithValue("isNotLocked", user.isNotLocked()) .hasFieldOrPropertyWithValue("isNotLocked", user.isNotLocked())
.hasFieldOrPropertyWithValue("role", user.getRole()); .hasFieldOrPropertyWithValue("role", user.getRole())
.satisfies(u -> assertThat(u.getProfileImageUrl()).endsWith(String.format("/user/image/profile/%s/avatar.jpg", user.getUserId())));
Path path = Path.of(FileConstant.USER_FOLDER, user.getUserId(), FileConstant.USER_IMAGE_FILENAME); Path path = Path.of(FileConstant.USER_FOLDER, user.getUserId(), FileConstant.USER_IMAGE_FILENAME);
log.debug("Path of created file: {}", path); log.debug("Path of created file: {}", path);
@ -760,7 +761,7 @@ class UserResourceUnSecureTest extends BaseUserTest {
String userId = user.getUserId(); String userId = user.getUserId();
//when //when
RequestEntity<Void> requestEntity = RequestEntity.get("/user/image/profile/{userId}",userId) RequestEntity<Void> requestEntity = RequestEntity.get("/user/image/profile/{userId}", userId)
.accept(MediaType.IMAGE_JPEG) .accept(MediaType.IMAGE_JPEG)
.build(); .build();
var responseEntity = restTemplate.exchange(requestEntity, new ParameterizedTypeReference<byte[]>() { var responseEntity = restTemplate.exchange(requestEntity, new ParameterizedTypeReference<byte[]>() {
@ -800,7 +801,8 @@ class UserResourceUnSecureTest extends BaseUserTest {
.hasFieldOrPropertyWithValue("lastName", user.getLastName()) .hasFieldOrPropertyWithValue("lastName", user.getLastName())
.hasFieldOrPropertyWithValue("isActive", user.isActive()) .hasFieldOrPropertyWithValue("isActive", user.isActive())
.hasFieldOrPropertyWithValue("isNotLocked", user.isNotLocked()) .hasFieldOrPropertyWithValue("isNotLocked", user.isNotLocked())
.hasFieldOrPropertyWithValue("role", user.getRole()); .hasFieldOrPropertyWithValue("role", user.getRole())
.satisfies(u -> assertThat(u.getProfileImageUrl()).endsWith(String.format("/user/image/profile/%s/avatar.jpg", user.getUserId())));
Path path = Path.of(FileConstant.USER_FOLDER, user.getUserId(), FileConstant.USER_IMAGE_FILENAME); Path path = Path.of(FileConstant.USER_FOLDER, user.getUserId(), FileConstant.USER_IMAGE_FILENAME);
log.debug("Path of created file: {}", path); log.debug("Path of created file: {}", path);