package com.gmp.mock.handler; import java.util.stream.Collectors; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import com.gmp.mock.dto.ApiResponse; import com.gmp.mock.service.TemplateNotFoundException; @RestControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity> handleValidation(MethodArgumentNotValidException ex) { String message = ex.getBindingResult().getFieldErrors().stream() .map(e -> e.getDefaultMessage()) .collect(Collectors.joining("; ")); return ResponseEntity.badRequest() .body(ApiResponse.error(400, message)); } @ExceptionHandler(TemplateNotFoundException.class) public ResponseEntity> handleTemplateNotFound(TemplateNotFoundException ex) { return ResponseEntity.status(404) .body(ApiResponse.error(404, ex.getMessage())); } }