package org.shujito.ucs; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.core.MediaType; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Response; import org.eclipse.jetty.server.handler.ErrorHandler; import org.shujito.ucs.models.ApiResponse; import com.google.gson.Gson; public class ApiErrorHandler extends ErrorHandler { public static final String TAG = ApiErrorHandler.class.getSimpleName(); private Gson gson = GsonWrapper.getInstance().getGson(); @Override public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException { ApiResponse apiResponse = new ApiResponse(); apiResponse.success = false; apiResponse.status = response.getStatus(); apiResponse.message = (response instanceof Response) ? ((Response) response).getReason() : null; baseRequest.setHandled(true); response.setHeader("content-type", MediaType.APPLICATION_JSON); response.getWriter().write(this.gson.toJson(apiResponse)); } }