argos/dmp-backend/web/src/main/java/eu/eudat/controllers/controllerhandler/ControllerValidatorErrorHan...

67 lines
2.7 KiB
Java

//package eu.eudat.controllers.controllerhandler;
//
//import eu.eudat.models.data.errormodels.ValidationErrorContext;
//import eu.eudat.models.data.helpers.responses.ResponseItem;
//import eu.eudat.types.ApiMessageCode;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.MessageSource;
//import org.springframework.context.i18n.LocaleContextHolder;
//import org.springframework.core.annotation.Order;
//import org.springframework.http.HttpStatus;
//import org.springframework.validation.BindingResult;
//import org.springframework.validation.FieldError;
//import org.springframework.web.bind.MethodArgumentNotValidException;
//import org.springframework.web.bind.annotation.ControllerAdvice;
//import org.springframework.web.bind.annotation.ExceptionHandler;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.bind.annotation.ResponseStatus;
//
//import java.util.List;
//import java.util.Locale;
//
//
//@ControllerAdvice
//@Order(3)
//public class ControllerValidatorErrorHandler {
//
// private MessageSource messageSource;
//
// @Autowired
// public ControllerValidatorErrorHandler(MessageSource messageSource) {
// this.messageSource = messageSource;
// }
//
// @ExceptionHandler(MethodArgumentNotValidException.class)
// @ResponseStatus(HttpStatus.BAD_REQUEST)
// @ResponseBody
// public ResponseItem<ValidationErrorContext> processValidationError(MethodArgumentNotValidException ex) {
// BindingResult result = ex.getBindingResult();
// List<FieldError> fieldErrors = result.getFieldErrors();
//
// return processFieldErrors(fieldErrors);
// }
//
// private ResponseItem<ValidationErrorContext> processFieldErrors(List<FieldError> fieldErrors) {
// ValidationErrorContext dto = new ValidationErrorContext();
//
// for (FieldError fieldError : fieldErrors) {
// String localizedErrorMessage = resolveLocalizedErrorMessage(fieldError);
// dto.addFieldError(fieldError.getField(), localizedErrorMessage);
// }
//
// return new ResponseItem<ValidationErrorContext>().status(ApiMessageCode.VALIDATION_MESSAGE).payload(dto);
// }
//
// private String resolveLocalizedErrorMessage(FieldError fieldError) {
// Locale currentLocale = LocaleContextHolder.getLocale();
// String localizedErrorMessage = messageSource.getMessage(fieldError, currentLocale);
//
// if (localizedErrorMessage.equals(fieldError.getDefaultMessage())) {
// String[] fieldErrorCodes = fieldError.getCodes();
// localizedErrorMessage = fieldErrorCodes[0];
// }
//
// return localizedErrorMessage;
// }
//}