void handleJsonRequest(ObjectMapper mapper, HttpService serviceInstance, RakamHttpRequest request, Function<HttpService, Object> function) { try { Object apply = function.apply(serviceInstance); returnJsonResponse(mapper, request, OK, apply); } catch (HttpRequestException ex) { uncaughtExceptionHandler.handle(request, ex); HttpResponseStatus statusCode = ex.getStatusCode(); returnJsonResponse(mapper, request, statusCode, new ErrorMessage(ex.getErrors(), ex.getMeta())); } catch (Throwable e) { uncaughtExceptionHandler.handle(request, e); LOGGER.error(e, "An uncaught exception raised while processing request."); returnJsonResponse(mapper, request, INTERNAL_SERVER_ERROR, getErrorMessage(e)); } }
void requestError(Throwable ex, RakamHttpRequest request) { uncaughtExceptionHandler.handle(request, ex); if (ex instanceof HttpRequestException) { HttpRequestException httpEx = (HttpRequestException) ex; HttpResponseStatus statusCode = httpEx.getStatusCode(); returnJsonResponse(mapper, request, statusCode, new ErrorMessage(httpEx.getErrors(), httpEx.getMeta())); } else { returnJsonResponse(mapper, request, INTERNAL_SERVER_ERROR, getErrorMessage(ex)); LOGGER.error(ex, "Error while processing request"); } }
void handleJsonRequest(ObjectMapper mapper, RakamHttpRequest request, MethodHandle methodHandle, Object[] arguments) { try { Object apply = methodHandle.invokeWithArguments(arguments); returnJsonResponse(mapper, request, OK, apply); } catch (HttpRequestException e) { uncaughtExceptionHandler.handle(request, e); HttpResponseStatus statusCode = e.getStatusCode(); returnJsonResponse(mapper, request, statusCode, new ErrorMessage(e.getErrors(), e.getMeta())); } catch (Throwable e) { uncaughtExceptionHandler.handle(request, e); LOGGER.error(e, "An uncaught exception raised while processing request."); returnJsonResponse(mapper, request, INTERNAL_SERVER_ERROR, getErrorMessage(e)); } }