add general support for unsupported parameters in modifying requests.
This commit is contained in:
+45
@@ -0,0 +1,45 @@
|
||||
package org.mifosng.platform.api.errorhandling;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
import javax.ws.rs.ext.ExceptionMapper;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
|
||||
import org.codehaus.jackson.map.exc.UnrecognizedPropertyException;
|
||||
import org.mifosng.data.ApiGlobalErrorResponse;
|
||||
import org.mifosng.data.ApiParameterError;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* An {@link ExceptionMapper} to map {@link UnrecognizedPropertyException} thrown by platform into a HTTP API friendly format.
|
||||
*
|
||||
* The {@link UnrecognizedPropertyException} is typically thrown when a parameter is passed during and post or put that is not expected.
|
||||
*/
|
||||
@Provider
|
||||
@Component
|
||||
@Scope("singleton")
|
||||
public class UnrecognizedPropertyExceptionMapper implements ExceptionMapper<UnrecognizedPropertyException> {
|
||||
|
||||
@Override
|
||||
public Response toResponse(UnrecognizedPropertyException exception) {
|
||||
|
||||
String parameterName = exception.getUnrecognizedPropertyName();
|
||||
|
||||
StringBuilder validationErrorCode = new StringBuilder("error.msg.parameter.").append(parameterName).append(".unsupported");
|
||||
StringBuilder defaultEnglishMessage = new StringBuilder("The parameter ").append(parameterName).append(" is not supported.");
|
||||
ApiParameterError error = ApiParameterError.parameterError(validationErrorCode.toString(), defaultEnglishMessage.toString(), parameterName);
|
||||
|
||||
List<ApiParameterError> errors = new ArrayList<ApiParameterError>();
|
||||
errors.add(error);
|
||||
|
||||
ApiGlobalErrorResponse invalidParameterError = ApiGlobalErrorResponse.badClientRequest(
|
||||
"validation.msg.validation.errors.exist",
|
||||
"Validation errors exist.", errors);
|
||||
|
||||
return Response.status(Status.BAD_REQUEST).entity(invalidParameterError).build();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user