Refactor some code in image service.

This commit is contained in:
2019-08-04 21:48:44 +02:00
parent bb5ae901f7
commit 54b081e700
5 changed files with 159 additions and 42 deletions
@@ -6,13 +6,12 @@ import org.codiki.core.entities.persistence.User;
import org.codiki.core.repositories.ImageRepository;
import org.codiki.core.repositories.UserRepository;
import org.codiki.core.services.FileUploadService;
import org.codiki.core.services.IllegalAccessException;
import org.codiki.core.services.UserService;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.security.Principal;
import java.util.Date;
import java.util.List;
@@ -48,24 +47,23 @@ public class ImageService {
this.imageRepository = imageRepository;
}
/**
* Save the uploaded file in persistence folder and set it as profil picture to uploader-user.
* @param pFile Uploaded file
* @param pPrincipal Uploader-user.
* @return Name of the uploaded file.
* @throws IllegalAccessException If the user isn't allowed to upload file
*/
public String uploadAvatar(final MultipartFile pFile,
final HttpServletResponse pResponse,
final Principal pPrincipal) throws IOException {
final Principal pPrincipal) throws IllegalAccessException {
final String avatarFileName = fileUploadService.uploadProfileImage(pFile);
final Optional<User> connectedUser = userService.getUserByPrincipal(pPrincipal);
if(connectedUser.isPresent()) {
final Optional<User> userFromDb = userRepository.findById(connectedUser.get().getId());
if(userFromDb.isPresent()) {
userFromDb.get().setImage(avatarFileName);
userRepository.save(userFromDb.get());
} else {
pResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED);
}
} else {
pResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED);
}
userService.getUserByPrincipal(pPrincipal)
.ifPresentOrElse(user -> {
user.setImage(avatarFileName);
userRepository.save(user);
}, IllegalAccessException::new);
return avatarFileName;
}
@@ -73,16 +71,13 @@ public class ImageService {
final String imageFileName = fileUploadService.uploadImage(pFile);
userService.getUserByPrincipal(pPrincipal)
.map(User::getId)
.map(userRepository::findById)
.orElseThrow(NoSuchElementException::new)
.ifPresent(user -> {
.ifPresentOrElse(user -> {
final Image image = new Image();
image.setLink(imageFileName);
image.setDate(new Date());
image.setUser(user);
imageRepository.save(image);
});
}, IllegalAccessException::new);
return imageFileName;
}
@@ -96,13 +91,12 @@ public class ImageService {
}
public List<ImageDTO> getUserImages(final Principal pPrincipal) {
return userService.getUserByPrincipal(pPrincipal)
.map(User::getId)
.map(imageRepository::getByUserId)
.orElseThrow(NoSuchElementException::new)
.stream()
.map(ImageDTO::new)
.collect(Collectors.toList());
return imageRepository.getByUserId(userService.getUserByPrincipal(pPrincipal)
.map(User::getId)
.orElseThrow(NoSuchElementException::new))
.stream()
.map(ImageDTO::new)
.collect(Collectors.toList());
}
public Optional<ImageDTO> getImageDetails(final String pImageLink) {