package eu.eudat.controllers.controllerhandler; import eu.eudat.models.helpers.responses.ResponseItem; import eu.eudat.services.ApiContext; import eu.eudat.types.ApiMessageCode; import eu.eudat.types.WarningLevel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; 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 org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; import javax.servlet.http.HttpServletRequest; /** * Created by ikalyvas on 3/1/2018. */ @ControllerAdvice public class GeneralErrorHandler extends ResponseEntityExceptionHandler { private ApiContext apiContext; @Autowired public GeneralErrorHandler(ApiContext apiContext) { this.apiContext = apiContext; } @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseBody public ResponseItem processValidationError(HttpServletRequest req, Exception ex) { apiContext.getHelpersService().getLoggerService().log(ex.getMessage(), WarningLevel.ERROR); return new ResponseItem().status(ApiMessageCode.ERROR_MESSAGE).message(ex.getMessage()); } }