From 7f829a70e17020e0af82f9706c972aad3597a0cc Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Thu, 5 Jun 2025 19:41:03 +0200 Subject: [PATCH] ADD more error handling --- .../controllers/GlobalExceptionHandler.java | 20 +++++++++++++++++++ .../controllers/UploadController.java | 5 ++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ddf/vodsystem/controllers/GlobalExceptionHandler.java b/src/main/java/com/ddf/vodsystem/controllers/GlobalExceptionHandler.java index 3d31742..df6e962 100644 --- a/src/main/java/com/ddf/vodsystem/controllers/GlobalExceptionHandler.java +++ b/src/main/java/com/ddf/vodsystem/controllers/GlobalExceptionHandler.java @@ -2,12 +2,32 @@ package com.ddf.vodsystem.controllers; import com.ddf.vodsystem.exceptions.JobNotFinished; import com.ddf.vodsystem.exceptions.JobNotFound; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.HttpMediaTypeNotSupportedException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.multipart.MultipartException; +import org.springframework.web.multipart.support.MissingServletRequestPartException; @ControllerAdvice public class GlobalExceptionHandler { + @ExceptionHandler({ MultipartException.class }) + public ResponseEntity handleMultipartException(MultipartException ex) { + return ResponseEntity.badRequest().body("Request is not multipart/form-data."); + } + + @ExceptionHandler({ MissingServletRequestPartException.class }) + public ResponseEntity handleMissingPart(MissingServletRequestPartException ex) { + return ResponseEntity.badRequest().body("Required file part is missing."); + } + + @ExceptionHandler({ HttpMediaTypeNotSupportedException.class }) + public ResponseEntity handleUnsupportedMediaType(HttpMediaTypeNotSupportedException ex) { + return ResponseEntity.status(HttpStatus.UNSUPPORTED_MEDIA_TYPE) + .body("Unsupported media type: expected multipart/form-data."); + } + @ExceptionHandler(IllegalArgumentException.class) public ResponseEntity handleIllegalArgument(IllegalArgumentException ex) { return ResponseEntity.status(400).body(ex.getMessage()); diff --git a/src/main/java/com/ddf/vodsystem/controllers/UploadController.java b/src/main/java/com/ddf/vodsystem/controllers/UploadController.java index 5248086..92f3d3c 100644 --- a/src/main/java/com/ddf/vodsystem/controllers/UploadController.java +++ b/src/main/java/com/ddf/vodsystem/controllers/UploadController.java @@ -20,8 +20,11 @@ public class UploadController { @PostMapping() public ResponseEntity uploadVideo(@RequestParam("file") MultipartFile file) { - String uuid = uploadService.upload(file); + if (file == null || file.isEmpty()) { + throw new IllegalArgumentException("Invalid file"); + } + String uuid = uploadService.upload(file); return new ResponseEntity<>(uuid, HttpStatus.OK); } }