package hu.sch.api.providers;
import javax.ws.rs.NotAllowedException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
import hu.sch.api.response.PekError;
import hu.sch.services.exceptions.PekErrorCode;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
@Provider
public class MethodNotAllowedHandler implements ExceptionMapper<NotAllowedException> {
@Context
private HttpServletRequest request;
@Override
public Response toResponse(NotAllowedException exception) {
final String cause = String.format("%s is not allowed for path (%s).", request.getMethod(), request.getRequestURI());
PekError error = new PekError(PekErrorCode.METHOD_NOT_ALLOWED, cause);
return Response
.fromResponse(exception.getResponse())
.entity(error)
.type(MediaType.APPLICATION_JSON)
.build();
}
}