github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/pkg/publisher/estuary/endpoints.go (about)

     1  package estuary
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  
     7  	estuary_client "github.com/application-research/estuary-clients/go"
     8  	"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
     9  	semconv "go.opentelemetry.io/otel/semconv/v1.17.0"
    10  	"go.opentelemetry.io/otel/trace"
    11  )
    12  
    13  const gatewayEndpoint string = "https://api.estuary.tech"
    14  
    15  func getAPIConfig(baseURL string, apiKey string) *estuary_client.Configuration {
    16  	config := estuary_client.NewConfiguration()
    17  	config.BasePath = baseURL
    18  	config.AddDefaultHeader("Authorization", "Bearer "+apiKey)
    19  	config.HTTPClient = &http.Client{
    20  		Transport: otelhttp.NewTransport(nil, otelhttp.WithSpanNameFormatter(func(operation string, r *http.Request) string {
    21  			return fmt.Sprintf("%s %s", r.Method, r.URL.Path)
    22  		}), otelhttp.WithSpanOptions(trace.WithAttributes(semconv.PeerService("estuary")))),
    23  	}
    24  	return config
    25  }
    26  
    27  func GetClient(apiKey string) *estuary_client.APIClient {
    28  	gatewayConfig := getAPIConfig(gatewayEndpoint, apiKey)
    29  	return estuary_client.NewAPIClient(gatewayConfig)
    30  }