@Override protected Single<KnotContext> processRequest(KnotContext knotContext) { knotContext.setTransition(DEFAULT_TRANSITION); return Single.just(knotContext); }
@Override protected Single<KnotContext> processRequest(KnotContext knotContext) { knotContext.setTransition(DEFAULT_TRANSITION); return Single.just(knotContext); }
@Override protected Single<KnotContext> processRequest(KnotContext knotContext) { knotContext.setTransition(DEFAULT_TRANSITION); return Single.just(knotContext); }
@Override public void process(KnotContext knotContext, Handler<AsyncResult<KnotContext>> result) { if (shouldProcess(knotContext)) { processRequest(knotContext) .subscribe( ctx -> result.handle(Future.succeededFuture(ctx)), error -> { LOGGER.error("Error happened during Knot Context processing", error); result.handle(Future.succeededFuture(processError(knotContext, error))); } ); } else { knotContext.setTransition(StringUtils.isBlank(knotContext.getTransition()) ? DEFAULT_TRANSITION : knotContext.getTransition()); result.handle(Future.succeededFuture(knotContext)); } }
@Override public void process(KnotContext knotContext, Handler<AsyncResult<KnotContext>> result) { if (shouldProcess(knotContext)) { processRequest(knotContext) .subscribe( ctx -> result.handle(Future.succeededFuture(ctx)), error -> { LOGGER.error("Error happened during Knot Context processing", error); result.handle(Future.succeededFuture(processError(knotContext, error))); } ); } else { knotContext.setTransition(StringUtils.isBlank(knotContext.getTransition()) ? DEFAULT_TRANSITION : knotContext.getTransition()); result.handle(Future.succeededFuture(knotContext)); } }
@Override protected Single<KnotContext> processRequest(KnotContext knotContext) { return Single.create(observer -> { try { knotContext.setTransition(DEFAULT_TRANSITION); Optional.ofNullable(knotContext.getFragments()).ifPresent(fragments -> fragments.stream() .filter(this::shouldProcess) .forEach(fragment -> fragment.content(evaluateWithFallback(fragment))) ); observer.onSuccess(knotContext); } catch (Exception e) { observer.onError(e); } }); }
private KnotContext createSuccessResponse(KnotContext inputContext) { return new KnotContext() .setClientRequest(inputContext.getClientRequest()) .setClientResponse(inputContext.getClientResponse()) .setFragments( Optional.ofNullable(inputContext.getFragments()).orElse(Collections.emptyList())) .setTransition(DEFAULT_TRANSITION); }
private KnotContext createSuccessResponse(KnotContext inputContext) { return new KnotContext() .setClientRequest(inputContext.getClientRequest()) .setClientResponse(inputContext.getClientResponse()) .setFragments( Optional.ofNullable(inputContext.getFragments()).orElse(Collections.emptyList())) .setTransition(DEFAULT_TRANSITION); }
private KnotContext routeToNextKnotResponse(ClientResponse clientResponse, KnotContext knotContext, List<FormEntity> forms, FormEntity form) { LOGGER.debug("Request next transition to [{}]", DEFAULT_TRANSITION); JsonObject actionContext = new JsonObject() .put("_result", new JsonObject(clientResponse.getBody().toString())) .put("_response", clientResponse.toMetadataJson()); form.fragment().context().put("action", actionContext); knotContext.getClientResponse() .setHeaders(getFilteredHeaders(clientResponse.getHeaders(), form.adapter().getAllowedResponseHeadersPatterns()) ); forms.forEach(f -> f.fragment() .content(simplifier .transform(f.fragment().content(), options.getFormIdentifierName(), f.identifier()))); knotContext.setTransition(DEFAULT_TRANSITION); return knotContext; }
private KnotContext handleGetMethod(List<FormEntity> forms, KnotContext knotContext) { LOGGER.debug("Pass-through {} request", knotContext.getClientRequest().getMethod()); knotContext.setTransition(DEFAULT_TRANSITION); forms.forEach(form -> form.fragment() .content(simplifier.transform(form.fragment().content(), options.getFormIdentifierName(), form.identifier()))); return knotContext; }
public static void fromJson(JsonObject json, KnotContext obj) { if (json.getValue("clientRequest") instanceof JsonObject) { obj.setClientRequest(new io.knotx.dataobjects.ClientRequest((JsonObject)json.getValue("clientRequest"))); } if (json.getValue("clientResponse") instanceof JsonObject) { obj.setClientResponse(new io.knotx.dataobjects.ClientResponse((JsonObject)json.getValue("clientResponse"))); } if (json.getValue("fragments") instanceof JsonArray) { java.util.ArrayList<io.knotx.dataobjects.Fragment> list = new java.util.ArrayList<>(); json.getJsonArray("fragments").forEach( item -> { if (item instanceof JsonObject) list.add(new io.knotx.dataobjects.Fragment((JsonObject)item)); }); obj.setFragments(list); } if (json.getValue("transition") instanceof String) { obj.setTransition((String)json.getValue("transition")); } }
private void createSimpleGatewayKnot(Vertx vertx, final String address, final String transition) { MockKnotProxy.register(vertx.getDelegate(), address, knotContext -> { ClientResponse clientResponse = new ClientResponse(); clientResponse.setStatusCode(200); knotContext.setClientResponse(clientResponse); knotContext.setTransition(transition); }); }
private void createSimpleFailingKnot(Vertx vertx, final String address, final int statusCode, final MultiMap headers) { MockKnotProxy.register(vertx.getDelegate(), address, knotContext -> { knotContext.getClientResponse().setStatusCode(statusCode).setHeaders(headers); knotContext.setTransition(null); }); } }
private void createSimpleKnot(Vertx vertx, final String address, final String addToBody, final String transition) { MockKnotProxy.register(vertx.getDelegate(), address, knotContext -> { knotContext.getClientResponse().setBody( knotContext.getClientResponse().getBody().appendString(addToBody) ); knotContext.setTransition(transition); }); }
private void createSimpleKnot(Vertx vertx, final String address, final String addToBody, final String transition) { MockKnotProxy.register(vertx.getDelegate(), address, knotContext -> { knotContext.getClientResponse().setBody( knotContext.getClientResponse().getBody().appendString(addToBody) ); knotContext.setTransition(transition); }); }