From fefa72b8c1b4fb803e37b383d823542a1247953f Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Sat, 13 Jan 2024 17:30:11 -0300 Subject: [PATCH] [R9] Custom exception to handle errors related to consultation business rules --- .../ConsultationValidationException.java | 8 +++++++ .../ConsultationValidationErrorHandler.java | 23 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/main/java/com/mirna/hospitalmanagementapi/domain/exceptions/ConsultationValidationException.java create mode 100644 src/main/java/com/mirna/hospitalmanagementapi/infra/handlers/validation/ConsultationValidationErrorHandler.java diff --git a/src/main/java/com/mirna/hospitalmanagementapi/domain/exceptions/ConsultationValidationException.java b/src/main/java/com/mirna/hospitalmanagementapi/domain/exceptions/ConsultationValidationException.java new file mode 100644 index 0000000..9f55e4c --- /dev/null +++ b/src/main/java/com/mirna/hospitalmanagementapi/domain/exceptions/ConsultationValidationException.java @@ -0,0 +1,8 @@ +package com.mirna.hospitalmanagementapi.domain.exceptions; + +public class ConsultationValidationException extends Exception { + + public ConsultationValidationException(String message) { + super(message); + } +} diff --git a/src/main/java/com/mirna/hospitalmanagementapi/infra/handlers/validation/ConsultationValidationErrorHandler.java b/src/main/java/com/mirna/hospitalmanagementapi/infra/handlers/validation/ConsultationValidationErrorHandler.java new file mode 100644 index 0000000..48d53ff --- /dev/null +++ b/src/main/java/com/mirna/hospitalmanagementapi/infra/handlers/validation/ConsultationValidationErrorHandler.java @@ -0,0 +1,23 @@ +package com.mirna.hospitalmanagementapi.infra.handlers.validation; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import com.mirna.hospitalmanagementapi.domain.exceptions.ConsultationValidationException; + +/** + * This @RestControllerAdvice is used to handle errors related to consultation business rules and return appropriate response message + * + * @author Mirna Gama + * @version 1.0 + */ +@RestControllerAdvice +public class ConsultationValidationErrorHandler { + + @ExceptionHandler(ConsultationValidationException.class) + public ResponseEntity handle(ConsultationValidationException exception) { + return new ResponseEntity<>(exception.getMessage(), HttpStatus.BAD_REQUEST); + } +}