188. Delete user image on delete user (#28 Section 28: Enhancement)

This commit is contained in:
Art
2021-09-22 16:07:23 +03:00
parent c45153fb45
commit 9c2bcafef9
2 changed files with 16 additions and 9 deletions

View File

@ -110,23 +110,17 @@ public class UserResource {
@GetMapping(path = "{username}/image/profile", produces = MediaType.IMAGE_JPEG_VALUE)
public byte[] getProfileImage(@PathVariable String username) throws IOException {
byte[] profileImage = userService.getProfileImage(username);
log.debug("File size: {}", profileImage.length);
return profileImage;
return userService.getProfileImage(username);
}
@GetMapping(path = "image/profile/{userId}/{filename}", produces = MediaType.IMAGE_JPEG_VALUE)
public byte[] getProfileImageByUserId(@PathVariable String userId, @PathVariable String filename) throws IOException {
byte[] profileImage = userService.getImageByUserId(userId, filename);
log.debug("File size: {}", profileImage.length);
return profileImage;
return userService.getImageByUserId(userId, filename);
}
@GetMapping(path = "image/profile/{userId}", produces = MediaType.IMAGE_JPEG_VALUE)
public byte[] getDefaultProfileImage(@PathVariable String userId) {
byte[] profileImage = userService.getDefaultProfileImage(userId);
log.debug("File size: {}", profileImage.length);
return profileImage;
return userService.getDefaultProfileImage(userId);
}
private void authenticate(String username, String password) {

View File

@ -23,6 +23,7 @@ import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.util.FileSystemUtils;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
@ -194,6 +195,16 @@ public class UserServiceImpl implements UserService {
}
}
private void deleteProfileImageFolder(User user) {
Path userFolder = Paths.get(USER_FOLDER, user.getUserId());
try {
FileSystemUtils.deleteRecursively(userFolder);
} catch (IOException exception) {
log.error("Can't delete folder", exception);
}
}
@Override
public User updateUser(String username, UserDto userDto) {
@ -222,6 +233,8 @@ public class UserServiceImpl implements UserService {
User userToBeDeleted = userRepository
.findByUserId(userId)
.orElseThrow(() -> new UserNotFoundException("User was not found"));
deleteProfileImageFolder(userToBeDeleted);
userRepository.delete(userToBeDeleted);
}