package com.airlock.iam.oauth2.domain.model.client;

import com.airlock.iam.core.domain.model.http.HttpRequest;
import com.airlock.iam.core.domain.model.http.HttpRequestBody;
import com.airlock.iam.core.domain.model.http.HttpRequestHeader;
import com.airlock.iam.core.domain.model.http.HttpRequestHeaders;
import com.airlock.iam.core.domain.model.http.HttpRequestMethod;
import com.airlock.iam.core.domain.model.http.HttpRequestParameter;
import com.airlock.iam.core.domain.model.http.HttpRequestUri;
import java.net.URI;
import java.util.List;

public final class OAuth2GetRequestBuilder implements OAuth2RequestBuilder {
   @Override
   public HttpRequest buildRequestWithParams(URI uri, List<HttpRequestParameter> params, List<HttpRequestHeader> headers) {
      return HttpRequest.builder()
         .uri(HttpRequestUri.httpRequestUri(uri.toString(), params.toArray(HttpRequestParameter[]::new)))
         .method(HttpRequestMethod.GET)
         .body(HttpRequestBody.httpRequestBody(new byte[0]))
         .headers(HttpRequestHeaders.httpRequestHeaders(headers))
         .build();
   }
}
