@Override public ActionResponse apply(HttpResponse response) { return apply(response, false); }
private URI populateQueryParams(HttpRequest<R> request) throws URISyntaxException { URIBuilder uri = new URIBuilder(new EndpointURIFromRequestFunction().apply(request)); if (!request.hasQueryParams()) return uri.build(); for (Map.Entry<String, List<Object>> entry : request.getQueryParams().entrySet()) { for (Object o : entry.getValue()) { uri.addParameter(entry.getKey(), String.valueOf(o)); } } return uri.build(); }
public ActionResponse apply(HttpResponse response, boolean returnNullIfNotMapped) { if (Parser.isContentTypeText(response.getContentType())) { return ActionResponse.actionFailed(response.getStatusMessage(), response.getStatus()); } @SuppressWarnings("unchecked") Map<String, Object> map = response.readEntity(Map.class); ActionResponse ar = new ParseActionResponseFromJsonMap(response).apply(map); if (ar != null) return ar; if (ar == null && returnNullIfNotMapped) return null; return ActionResponse.actionFailed(String.format("Status: %d, Reason: %s", response.getStatus(), response.getStatusMessage()), response.getStatus()); } }
private void populateQueryParams() throws MalformedURLException { StringBuilder url = new StringBuilder(); url.append(new EndpointURIFromRequestFunction().apply(request)); if (!request.hasQueryParams()) { connectionUrl = new URL(url.toString()); return; } url.append("?"); for (Map.Entry<String, List<Object>> entry : request.getQueryParams().entrySet()) { for (Object o : entry.getValue()) { try { url.append(URLEncoder.encode(entry.getKey(), "UTF-8")).append("=").append(URLEncoder.encode(String.valueOf(o), "UTF-8")); url.append("&"); } catch (UnsupportedEncodingException e) { LOG.error(e.getMessage(), e); } } } if (url.charAt(url.length() - 1) == '&') { url.deleteCharAt(url.length() - 1); } connectionUrl = new URL(url.toString()); }
@Override public void propagate(HttpResponse response) { if (response.getStatus() == statusCode) { ActionResponse ar = ResponseToActionResponse.INSTANCE.apply(response); throw mapException(ar.getFault(), response.getStatus()); } }
private void populateQueryParams(HttpRequest<R> request) { StringBuilder url = new StringBuilder(); url.append(new EndpointURIFromRequestFunction().apply(request)); if (!request.hasQueryParams()) { clientReq.url(url.toString()); return; } url.append("?"); for(Map.Entry<String, List<Object> > entry : request.getQueryParams().entrySet()) { for (Object o : entry.getValue()) { try { url.append(URLEncoder.encode(entry.getKey(), "UTF-8")).append("=").append(URLEncoder.encode(String.valueOf(o), "UTF-8")); url.append("&"); } catch (UnsupportedEncodingException e) { LOG.error(e.getMessage(), e); } } } if (url.charAt(url.length() - 1) == '&') { url.deleteCharAt(url.length() - 1); } clientReq.url(url.toString()); }
public ActionResponse apply(HttpResponse response, String action) { try { if (response.getStatus() == 409 || response.getStatus() == 500) { ActionResponse ar = ResponseToActionResponse.INSTANCE.apply(response, true); if (ar != null) { return ar; } LOG.error("{}, {}", response.getStatus(), response.getStatusMessage()); if (action == null) { return ActionResponse.actionFailed("Instance currently is in build state", 409); } return ActionResponse.actionFailed(String.format(FAILED_MSG, action, action), 409); } if (response.getStatus() >= 400 && response.getStatus() < 409) { return ResponseToActionResponse.INSTANCE.apply(response); } return ActionResponse.actionSuccess(); } finally { HttpEntityHandler.closeQuietly(response); } }
private void initialize() { resteasyWebTarget = new ResteasyClientBuilder().httpEngine(ApacheHttpClientEngine.create(request.getConfig())) .providerFactory(ResteasyClientFactory.getInstance()).build() .target(UriBuilder.fromUri(new EndpointURIFromRequestFunction().apply(request))); populateQueryParams(request); resteasyRequest = resteasyWebTarget.request(); populateHeaders(request); }
@SuppressWarnings("unchecked") private static <T> Handle<T> handleLessThan500(Handle<T> handle) { if (handle.getResponse().getStatus() < 500) { try { ActionResponse ar = ResponseToActionResponse.INSTANCE.apply(handle.getResponse()); if (handle.getReturnType() == ActionResponse.class) { return handle.complete((T) ar); } throw mapException(ar.getFault(), handle.getResponse().getStatus()); } catch (ResponseException re) { throw re; } catch (Exception e) { LOG.error(e.getMessage(), e); } } return handle.continueHandling(); }
return (T) ResponseToActionResponse.INSTANCE.apply(response);