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 a user agent string as header to a request
013 */
014public class UserAgentMiddleware implements Middleware {
015    private final String userAgent;
016
017    public UserAgentMiddleware(final String userAgent) {
018        this.userAgent = userAgent;
019    }
020
021    @Override
022    public CompletableFuture<ApiHttpResponse<byte[]>> invoke(final ApiHttpRequest request,
023            final Function<ApiHttpRequest, CompletableFuture<ApiHttpResponse<byte[]>>> next) {
024        return next.apply(request.withHeader(ApiHttpHeaders.USER_AGENT, userAgent));
025    }
026}