You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
argos/dmp-backend/src/main/java/eu/eudat/controllers/controllerhandler/GeneralErrorHandler.java

39 lines
1.4 KiB
Java

6 years ago
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());
}
}