From 3ebac8cf672a675b03c6e9e4e4f7a4bfddd0f93e Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 15 Feb 2024 21:51:57 +0100 Subject: [PATCH] Added JSON response to Upload endpoint --- frontend/src/app/upload/upload.component.ts | 5 +++-- frontend/src/store/DevelopmentStore.ts | 1 + .../de/w665/sharepulse/rest/mappings/Upload.java | 14 ++++++++++++-- .../de/w665/sharepulse/service/FileService.java | 4 ++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/upload/upload.component.ts b/frontend/src/app/upload/upload.component.ts index 316b99e..f7818c7 100644 --- a/frontend/src/app/upload/upload.component.ts +++ b/frontend/src/app/upload/upload.component.ts @@ -26,7 +26,7 @@ export class UploadComponent { singleDownload: boolean = false; fileDescription: string = ''; passwordProtected: boolean = false; - password: string = 'nigga123'; + password: string = ''; // Generated by the server for only this file uploadStarted: boolean = false; uploadProgress = 0; // Real progress @@ -95,7 +95,8 @@ export class UploadComponent { axios.post(this.developmentStore.getBaseUrl() + 'api/v1/upload', formData, config) .then(response => { - console.log('Upload completed successfully:', response.data); + console.log('Upload completed successfully!'); + console.log(response.data); this.uploadFinished = true; }) .catch(error => { diff --git a/frontend/src/store/DevelopmentStore.ts b/frontend/src/store/DevelopmentStore.ts index 91c5ffe..653d1ea 100644 --- a/frontend/src/store/DevelopmentStore.ts +++ b/frontend/src/store/DevelopmentStore.ts @@ -13,6 +13,7 @@ export class DevelopmentStore { constructor() { this.isDevelopment = location.port === '4200'; + console.log("Development mode enabled: " + this.isDevelopment); } getIsDevelopment(): boolean { diff --git a/src/main/java/de/w665/sharepulse/rest/mappings/Upload.java b/src/main/java/de/w665/sharepulse/rest/mappings/Upload.java index e887ec5..3515dfb 100644 --- a/src/main/java/de/w665/sharepulse/rest/mappings/Upload.java +++ b/src/main/java/de/w665/sharepulse/rest/mappings/Upload.java @@ -1,5 +1,7 @@ package de.w665.sharepulse.rest.mappings; +import com.google.gson.JsonObject; +import de.w665.sharepulse.model.FileUpload; import de.w665.sharepulse.rest.ApiRestController; import de.w665.sharepulse.service.FileService; import jakarta.servlet.http.HttpServletRequest; @@ -38,8 +40,16 @@ public class Upload extends ApiRestController { return new ResponseEntity<>("Please select a file to upload.", HttpStatus.NOT_ACCEPTABLE); } - String fileId = fileService.processUploadedFile(file, request.getRemoteAddr(), password, singleDownload, fileDescription); + FileUpload fileUpload = fileService.processUploadedFile(file, request.getRemoteAddr(), password, singleDownload, fileDescription); log.debug("User uploaded file " + file.getOriginalFilename() + " from IP " + request.getRemoteAddr() + " successfully."); - return new ResponseEntity<>("File " + file.getOriginalFilename() + " uploaded successfully! ID(" + fileId + ")", HttpStatus.OK); + + JsonObject response = new JsonObject(); + response.addProperty("fileId", fileUpload.getFileId()); + response.addProperty("message", "File " + file.getOriginalFilename() + " uploaded successfully!"); + response.addProperty("passwordProtected", fileUpload.isPasswordProtected()); + response.addProperty("singleDownload", fileUpload.isSingleDownload()); + response.addProperty("uploadDate", fileUpload.getUploadDate().toString()); + + return new ResponseEntity<>(response.toString(), HttpStatus.OK); } } diff --git a/src/main/java/de/w665/sharepulse/service/FileService.java b/src/main/java/de/w665/sharepulse/service/FileService.java index 1edcd46..044a629 100644 --- a/src/main/java/de/w665/sharepulse/service/FileService.java +++ b/src/main/java/de/w665/sharepulse/service/FileService.java @@ -53,7 +53,7 @@ public class FileService { } } - public String processUploadedFile(MultipartFile file, String uploaderIp, String password, boolean singleDownload, String fileDescription) { + public FileUpload processUploadedFile(MultipartFile file, String uploaderIp, String password, boolean singleDownload, String fileDescription) { String fileId = fileIdService.generateNewUniqueId(); @@ -80,7 +80,7 @@ public class FileService { try { Files.write(path, file.getBytes()); log.debug("File " + file.getOriginalFilename() + " written to " + path.getFileName()); - return fileId; + return fileUpload; } catch (IOException e) { e.printStackTrace(); return null;