diff --git a/src/main/java/org/codiki/account/AccountController.java b/src/main/java/org/codiki/account/AccountController.java index 2aee74d..cf878ea 100755 --- a/src/main/java/org/codiki/account/AccountController.java +++ b/src/main/java/org/codiki/account/AccountController.java @@ -92,10 +92,11 @@ public class AccountController { } @PostMapping("/uploadAvatar") - public ResponseEntity uploadAvatar(@RequestParam("file") MultipartFile pFile) { + public ResponseEntity uploadAvatar(@RequestParam("file") MultipartFile pFile, + final HttpServletRequest pRequest, final HttpServletResponse pResponse) { String result; try { - result = accountService.uploadFile(pFile); + result = accountService.uploadFile(pFile, pRequest, pResponse); return ResponseEntity.status(HttpStatus.OK).body(result); } catch(final Exception pEx) { result = StringUtils.concat("Fail to upload ", pFile.getOriginalFilename() + "."); diff --git a/src/main/java/org/codiki/account/AccountService.java b/src/main/java/org/codiki/account/AccountService.java index a6d20c9..7d00768 100755 --- a/src/main/java/org/codiki/account/AccountService.java +++ b/src/main/java/org/codiki/account/AccountService.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.util.Optional; import javax.naming.AuthenticationException; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.codiki.core.entities.dto.PasswordWrapperDTO; @@ -75,8 +76,24 @@ public class AccountService { } } - public String uploadFile(final MultipartFile pFile) { - return fileUploadService.uploadProfileImage(pFile); + public String uploadFile(final MultipartFile pFile, + final HttpServletRequest pRequest, final HttpServletResponse pResponse) throws IOException { + final String avatarFileName = fileUploadService.uploadProfileImage(pFile); + + final Optional connectedUser = tokenService.getAuthenticatedUserByToken(pRequest); + if(connectedUser.isPresent()) { + final Optional 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); + } + + return avatarFileName; } public Resource loadAvatar(final String pAvatarFileName) {