From a39f1bc6a60dd08796bf03ddc0076eb478b03bff Mon Sep 17 00:00:00 2001 From: SAYEED AJMAL Date: Fri, 26 Apr 2024 17:37:04 +0530 Subject: [PATCH] added Custom Exception and some minor changes --- .../Controller/VehicleController.java | 5 +++-- .../Exception/GlobalExceptionHandler.java | 20 +++++++++++++++++ .../speedsyncrestful/Exception/SpeedRes.java | 14 ++++++++++++ .../Exception/SpeedSyncException.java | 22 +++++++++++++++++++ .../Service/VehicleService.java | 14 ++++++------ 5 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/strong/speedsyncrestful/Exception/GlobalExceptionHandler.java create mode 100644 src/main/java/com/strong/speedsyncrestful/Exception/SpeedRes.java create mode 100644 src/main/java/com/strong/speedsyncrestful/Exception/SpeedSyncException.java diff --git a/src/main/java/com/strong/speedsyncrestful/Controller/VehicleController.java b/src/main/java/com/strong/speedsyncrestful/Controller/VehicleController.java index 1b696c4..d53b3d1 100644 --- a/src/main/java/com/strong/speedsyncrestful/Controller/VehicleController.java +++ b/src/main/java/com/strong/speedsyncrestful/Controller/VehicleController.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RestController; import com.strong.speedsyncrestful.Entity.Vehicle; +import com.strong.speedsyncrestful.Exception.SpeedSyncException; import com.strong.speedsyncrestful.Service.VehicleService; @RestController @@ -19,8 +20,8 @@ public class VehicleController { private VehicleService vehicleService; @PostMapping("challan") - public ResponseEntity regVehicles(@RequestBody Vehicle vehicle) { - vehicleService.regVehicle(vehicle); + public ResponseEntity generateChallan(@RequestBody Vehicle vehicle) throws SpeedSyncException { + vehicleService.challanSave(vehicle); return new ResponseEntity<>(HttpStatus.CREATED); } } diff --git a/src/main/java/com/strong/speedsyncrestful/Exception/GlobalExceptionHandler.java b/src/main/java/com/strong/speedsyncrestful/Exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..93e9304 --- /dev/null +++ b/src/main/java/com/strong/speedsyncrestful/Exception/GlobalExceptionHandler.java @@ -0,0 +1,20 @@ +package com.strong.speedsyncrestful.Exception; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; + +@ControllerAdvice +public class GlobalExceptionHandler { + + @ExceptionHandler(SpeedSyncException.class) + + public ResponseEntity handleSpeedException(SpeedSyncException exception) { + SpeedRes response = new SpeedRes(); + response.setMessage(exception.getLocalizedMessage()); + response.setStatus(HttpStatus.CONFLICT.value()); + response.setTimeStamp(System.currentTimeMillis()); + return new ResponseEntity<>(response, HttpStatus.CONFLICT); + } +} \ No newline at end of file diff --git a/src/main/java/com/strong/speedsyncrestful/Exception/SpeedRes.java b/src/main/java/com/strong/speedsyncrestful/Exception/SpeedRes.java new file mode 100644 index 0000000..cbfc5fb --- /dev/null +++ b/src/main/java/com/strong/speedsyncrestful/Exception/SpeedRes.java @@ -0,0 +1,14 @@ +package com.strong.speedsyncrestful.Exception; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@NoArgsConstructor +@Getter +@Setter +public class SpeedRes { + private String Message; + private Integer Status; + private long TimeStamp; +} \ No newline at end of file diff --git a/src/main/java/com/strong/speedsyncrestful/Exception/SpeedSyncException.java b/src/main/java/com/strong/speedsyncrestful/Exception/SpeedSyncException.java new file mode 100644 index 0000000..819be5e --- /dev/null +++ b/src/main/java/com/strong/speedsyncrestful/Exception/SpeedSyncException.java @@ -0,0 +1,22 @@ +package com.strong.speedsyncrestful.Exception; + + +public class SpeedSyncException extends Exception { + + public SpeedSyncException() { + super(); + } + + public SpeedSyncException(String Message) { + super(Message); + } + + public SpeedSyncException(String Message, Throwable throwable) { + super(Message, throwable); + } + + public SpeedSyncException(Throwable throwable) { + super(throwable); + } + +} \ No newline at end of file diff --git a/src/main/java/com/strong/speedsyncrestful/Service/VehicleService.java b/src/main/java/com/strong/speedsyncrestful/Service/VehicleService.java index a7b34c3..e8a785d 100644 --- a/src/main/java/com/strong/speedsyncrestful/Service/VehicleService.java +++ b/src/main/java/com/strong/speedsyncrestful/Service/VehicleService.java @@ -1,11 +1,10 @@ package com.strong.speedsyncrestful.Service; -import java.util.List; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.strong.speedsyncrestful.Entity.Vehicle; +import com.strong.speedsyncrestful.Exception.SpeedSyncException; import com.strong.speedsyncrestful.Repository.VehicleRepo; import lombok.NonNull; @@ -16,12 +15,13 @@ public class VehicleService { @Autowired private VehicleRepo vehicleRepo; - public void regVehicle(@NonNull Vehicle vehicle) { + public void challanSave(@NonNull Vehicle vehicle) throws SpeedSyncException { vehicle.setTimestamp(System.currentTimeMillis()); - vehicleRepo.save(vehicle); + try { + vehicleRepo.save(vehicle); + } catch (Exception ex) { + throw new SpeedSyncException("Failed to Generate Challan: " + ex.getMessage()); + } } - public List getVehicles() { - return vehicleRepo.findAll(); - } }