mapRouteResultWith

mapRouteResultWith

Description

Changes the message the inner route sends to the responder.

The mapRouteResult directive is used as a building block for Custom Directives to transform the RouteResult coming back from the inner route. It's similar to the mapRouteResult directive but returning a CompletionStage instead of a result immediately, which may be useful for longer running transformations.

See Transforming the RouteResult for similar directives.

Example

final Route route = mapRouteResultWith(rr -> CompletableFuture.supplyAsync(() -> {
  if (rr instanceof Rejected) {
    final Iterable<Rejection> rejections =
      Collections.singletonList(Rejections.authorizationFailed());
    return RouteResults.rejected(rejections);
  } else {
    return rr;
  }
}), () -> reject(new MyCustomRejection()));

// tests:
runRouteUnSealed(route, HttpRequest.GET("/"))
  .assertRejections(Rejections.authorizationFailed());

Contents