Refactor file uploading.

This commit is contained in:
Florian
2018-05-18 22:41:54 +02:00
parent 5f54a8e592
commit 15be129540
2 changed files with 22 additions and 4 deletions

View File

@@ -92,10 +92,11 @@ public class AccountController {
} }
@PostMapping("/uploadAvatar") @PostMapping("/uploadAvatar")
public ResponseEntity<String> uploadAvatar(@RequestParam("file") MultipartFile pFile) { public ResponseEntity<String> uploadAvatar(@RequestParam("file") MultipartFile pFile,
final HttpServletRequest pRequest, final HttpServletResponse pResponse) {
String result; String result;
try { try {
result = accountService.uploadFile(pFile); result = accountService.uploadFile(pFile, pRequest, pResponse);
return ResponseEntity.status(HttpStatus.OK).body(result); return ResponseEntity.status(HttpStatus.OK).body(result);
} catch(final Exception pEx) { } catch(final Exception pEx) {
result = StringUtils.concat("Fail to upload ", pFile.getOriginalFilename() + "."); result = StringUtils.concat("Fail to upload ", pFile.getOriginalFilename() + ".");

View File

@@ -4,6 +4,7 @@ import java.io.IOException;
import java.util.Optional; import java.util.Optional;
import javax.naming.AuthenticationException; import javax.naming.AuthenticationException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.codiki.core.entities.dto.PasswordWrapperDTO; import org.codiki.core.entities.dto.PasswordWrapperDTO;
@@ -75,8 +76,24 @@ public class AccountService {
} }
} }
public String uploadFile(final MultipartFile pFile) { public String uploadFile(final MultipartFile pFile,
return fileUploadService.uploadProfileImage(pFile); final HttpServletRequest pRequest, final HttpServletResponse pResponse) throws IOException {
final String avatarFileName = fileUploadService.uploadProfileImage(pFile);
final Optional<User> connectedUser = tokenService.getAuthenticatedUserByToken(pRequest);
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);
}
return avatarFileName;
} }
public Resource loadAvatar(final String pAvatarFileName) { public Resource loadAvatar(final String pAvatarFileName) {