private LiveHttpResponse exceptionToResponse(Throwable exception, LiveHttpRequest request) { HttpResponseStatus status = status(exception instanceof PluginException ? exception.getCause() : exception); String message = status.code() >= 500 ? "Site temporarily unavailable." : status.description(); return responseEnhancer.enhance( LiveHttpResponse .response(status) .body(new ByteStream(Flux.just(new Buffer(message, UTF_8)))) .build() .newBuilder(), request) .header(CONTENT_LENGTH, message.getBytes(UTF_8).length) .build(); }
private LiveHttpResponse.Transformer addInfoHeader(LiveHttpResponse.Transformer responseBuilder, LiveHttpRequest request) { return responseBuilder.header(styxInfoHeaderName, responseInfoFormat.format(request)); }
@Override public Eventual<LiveHttpResponse> intercept(LiveHttpRequest request, Chain chain) { LiveHttpRequest newRequest = request.newBuilder() .header(VIA, viaHeader(request)) .build(); return chain.proceed(newRequest) .map(response -> response.newBuilder() .header(VIA, viaHeader(response)) .build()); }
private LiveHttpResponse addOriginId(Id originId, LiveHttpResponse response) { return response.newBuilder() .header(originIdHeader, originId) .build(); }
private static LiveHttpResponse responseWithoutBody(LiveHttpResponse response) { return response.newBuilder() .header(CONTENT_LENGTH, 0) .removeHeader(TRANSFER_ENCODING) .removeBody() .build(); }