@Override public HttpServerRoutes route(Predicate<? super HttpServerRequest> condition, BiFunction<? super HttpServerRequest, ? super HttpServerResponse, ? extends Publisher<Void>> handler) { Objects.requireNonNull(condition, "condition"); Objects.requireNonNull(handler, "handler"); if (condition instanceof HttpPredicate) { handlers.add(new HttpRouteHandler(condition, handler, (HttpPredicate) condition)); } else { handlers.add(new HttpRouteHandler(condition, handler, null)); } return this; }
@Override public Publisher<Void> apply(HttpServerRequest request, HttpServerResponse response) { final Iterator<HttpRouteHandler> iterator = handlers.iterator(); HttpRouteHandler cursor; try { while (iterator.hasNext()) { cursor = iterator.next(); if (cursor.test(request)) { return cursor.apply(request, response); } } } catch (Throwable t) { Exceptions.throwIfFatal(t); return Mono.error(t); //500 } return response.sendNotFound(); }
@Override public Publisher<Void> apply(HttpServerRequest request, HttpServerResponse response) { final Iterator<HttpRouteHandler> iterator = handlers.iterator(); HttpRouteHandler cursor; try { while (iterator.hasNext()) { cursor = iterator.next(); if (cursor.test(request)) { return cursor.apply(request, response); } } } catch (Throwable t) { Exceptions.throwIfFatal(t); return Mono.error(t); //500 } return response.sendNotFound(); }
@Override public HttpServerRoutes route(Predicate<? super HttpServerRequest> condition, BiFunction<? super HttpServerRequest, ? super HttpServerResponse, ? extends Publisher<Void>> handler) { Objects.requireNonNull(condition, "condition"); Objects.requireNonNull(handler, "handler"); if (condition instanceof HttpPredicate) { handlers.add(new HttpRouteHandler(condition, handler, (HttpPredicate) condition)); } else { handlers.add(new HttpRouteHandler(condition, handler, null)); } return this; }