From cc8a210eb85fb21dc0c85739097fddbdf831e23a Mon Sep 17 00:00:00 2001 From: Florian Date: Sun, 20 May 2018 17:51:30 +0200 Subject: [PATCH] Add endpoints to fetch uploaded images. --- .../org/codiki/account/AccountController.java | 6 ++++++ .../org/codiki/account/AccountService.java | 21 +++++++++++++++++++ .../core/repositories/ImageRepository.java | 15 +++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 src/main/java/org/codiki/core/repositories/ImageRepository.java diff --git a/src/main/java/org/codiki/account/AccountController.java b/src/main/java/org/codiki/account/AccountController.java index cf878ea..9ec47cb 100755 --- a/src/main/java/org/codiki/account/AccountController.java +++ b/src/main/java/org/codiki/account/AccountController.java @@ -1,6 +1,7 @@ package org.codiki.account; import java.io.IOException; +import java.util.List; import java.util.Optional; import javax.servlet.http.HttpServletRequest; @@ -111,4 +112,9 @@ public class AccountController { .header(HttpHeaders.CONTENT_DISPOSITION, StringUtils.concat("attachment; filename=\"", avatarFile.getFilename(), "\"")) .body(avatarFile); } + + @GetMapping("/myImages") + public List myImages() { + return null; + } } diff --git a/src/main/java/org/codiki/account/AccountService.java b/src/main/java/org/codiki/account/AccountService.java index 7d00768..471d578 100755 --- a/src/main/java/org/codiki/account/AccountService.java +++ b/src/main/java/org/codiki/account/AccountService.java @@ -1,6 +1,8 @@ package org.codiki.account; import java.io.IOException; +import java.util.LinkedList; +import java.util.List; import java.util.Optional; import javax.naming.AuthenticationException; @@ -9,7 +11,9 @@ import javax.servlet.http.HttpServletResponse; import org.codiki.core.entities.dto.PasswordWrapperDTO; import org.codiki.core.entities.dto.UserDTO; +import org.codiki.core.entities.persistence.Image; import org.codiki.core.entities.persistence.User; +import org.codiki.core.repositories.ImageRepository; import org.codiki.core.repositories.UserRepository; import org.codiki.core.security.TokenService; import org.codiki.core.services.FileUploadService; @@ -31,6 +35,9 @@ public class AccountService { @Autowired private FileUploadService fileUploadService; + @Autowired + private ImageRepository imageRepository; + /** * Check the user credentials and generate him a token if they are correct. * @@ -99,4 +106,18 @@ public class AccountService { public Resource loadAvatar(final String pAvatarFileName) { return fileUploadService.loadAvatar(pAvatarFileName); } + + public List getUserImages(final HttpServletRequest pRequest, final HttpServletResponse pResponse) throws IOException { + List result = new LinkedList<>(); + + final Optional connectedUser = tokenService.getAuthenticatedUserByToken(pRequest); + if(connectedUser.isPresent()) { + result = imageRepository.getImagesByUserId(connectedUser.get().getId()); + // TODO : Transform Images into ImageDTOs + } else { + pResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED); + } + + return result; + } } diff --git a/src/main/java/org/codiki/core/repositories/ImageRepository.java b/src/main/java/org/codiki/core/repositories/ImageRepository.java new file mode 100644 index 0000000..7f7b7f2 --- /dev/null +++ b/src/main/java/org/codiki/core/repositories/ImageRepository.java @@ -0,0 +1,15 @@ +package org.codiki.core.repositories; + +import java.util.List; + +import org.codiki.core.entities.persistence.Image; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +@Repository +public interface ImageRepository extends CrudRepository { + @Query(value = "SELECT * FROM image WHERE user_id = :userId", nativeQuery = true) + List getImagesByUserId(@Param("userId") final Long pUserId); +}