001
002package io.vrap.rmf.base.client.http;
003
004import java.util.concurrent.CompletableFuture;
005import java.util.function.Function;
006
007import io.vrap.rmf.base.client.ApiHttpHeaders;
008import io.vrap.rmf.base.client.ApiHttpRequest;
009import io.vrap.rmf.base.client.ApiHttpResponse;
010
011/**
012 * Middleware to add the header {@code Accept: gzip} to the request
013 */
014public class AcceptGZipMiddleware implements Middleware {
015    @Override
016    public CompletableFuture<ApiHttpResponse<byte[]>> invoke(final ApiHttpRequest request,
017            final Function<ApiHttpRequest, CompletableFuture<ApiHttpResponse<byte[]>>> next) {
018        return next.apply(request.withHeader(ApiHttpHeaders.ACCEPT_ENCODING, "gzip"));
019    }
020
021    public static AcceptGZipMiddleware of() {
022        return new AcceptGZipMiddleware();
023    }
024}