diff --git a/petshop-api.postman_collection.json b/petshop-api.postman_collection.json index 73f6d258..d95a5b86 100644 --- a/petshop-api.postman_collection.json +++ b/petshop-api.postman_collection.json @@ -167,7 +167,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"username\": \"newcustomer{{$timestamp}}\",\n \"password\": \"password123\",\n \"email\": \"new{{$timestamp}}@example.com\",\n \"fullName\": \"New Customer\"\n}" + "raw": "{\n \"username\": \"newcustomer{{$timestamp}}\",\n \"password\": \"password123\",\n \"email\": \"new{{$timestamp}}@example.com\",\n \"phone\": \"+1-555-01{{$randomInt}}\",\n \"fullName\": \"New Customer\"\n}" } }, "event": [ diff --git a/src/main/java/com/petshop/backend/dto/employee/EmployeeRequest.java b/src/main/java/com/petshop/backend/dto/employee/EmployeeRequest.java index 0dfa25a8..f5fb9020 100644 --- a/src/main/java/com/petshop/backend/dto/employee/EmployeeRequest.java +++ b/src/main/java/com/petshop/backend/dto/employee/EmployeeRequest.java @@ -23,6 +23,7 @@ public class EmployeeRequest { @Email(message = "Invalid email format") private String email; + @NotBlank(message = "Phone is required") @Size(max = 20, message = "Phone must not exceed 20 characters") private String phone; diff --git a/src/main/java/com/petshop/backend/exception/GlobalExceptionHandler.java b/src/main/java/com/petshop/backend/exception/GlobalExceptionHandler.java index bfcfe03d..e055ea44 100644 --- a/src/main/java/com/petshop/backend/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/petshop/backend/exception/GlobalExceptionHandler.java @@ -3,6 +3,8 @@ package com.petshop.backend.exception; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; +import org.springframework.web.server.ResponseStatusException; import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -82,6 +84,27 @@ public class GlobalExceptionHandler { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(error); } + @ExceptionHandler(MethodArgumentTypeMismatchException.class) + public ResponseEntity handleMethodArgumentTypeMismatchException(MethodArgumentTypeMismatchException ex) { + ErrorResponse error = new ErrorResponse( + HttpStatus.BAD_REQUEST.value(), + "Invalid value for parameter: " + ex.getName(), + LocalDateTime.now() + ); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(error); + } + + @ExceptionHandler(ResponseStatusException.class) + public ResponseEntity handleResponseStatusException(ResponseStatusException ex) { + String message = ex.getReason() != null ? ex.getReason() : ex.getMessage(); + ErrorResponse error = new ErrorResponse( + ex.getStatusCode().value(), + message, + LocalDateTime.now() + ); + return ResponseEntity.status(ex.getStatusCode()).body(error); + } + @ExceptionHandler(Exception.class) public ResponseEntity handleGenericException(Exception ex) { ErrorResponse error = new ErrorResponse(