001package io.freefair.spring.okhttp;
002
003import kotlin.Pair;
004import okhttp3.Headers;
005import org.springframework.http.HttpHeaders;
006import org.springframework.util.Assert;
007
008public final class OkHttpUtils {
009    public static HttpHeaders toSpringHeaders(Headers okhttpHeaders) {
010        Assert.notNull(okhttpHeaders, "Headers must not be null");
011        HttpHeaders springHeaders = new HttpHeaders();
012        for (Pair<? extends String, ? extends String> okhttpHeader : okhttpHeaders) {
013            springHeaders.add(okhttpHeader.getFirst(), okhttpHeader.getSecond());
014        }
015        return springHeaders;
016    }
017
018    public static Headers toOkHttpHeaders(HttpHeaders springHeaders) {
019        Headers.Builder builder = new Headers.Builder();
020        springHeaders.forEach((name, values) -> {
021            values.forEach(value -> builder.add(name, value));
022        });
023        return builder.build();
024    }
025
026    private OkHttpUtils() {
027        throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
028    }
029}