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")
public ResponseEntity<String> uploadAvatar(@RequestParam("file") MultipartFile pFile) {
public ResponseEntity<String> 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() + ".");

View File

@@ -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<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) {