ficsit-cli-flake/ficsit/root.go
Vilsol 25f544b8fe
refactor: zerolog -> slog, errors.Wrap -> fmt.Error (#49)
* refactor: zerolog -> slog, errors.Wrap -> fmt.Error

* chore: lint

* fix: correctly handle errors

* fix: use parsed level

* fix: use parsed level, log json to file
2023-12-16 16:19:53 +02:00

37 lines
713 B
Go

package ficsit
import (
"fmt"
"net/http"
"github.com/Khan/genqlient/graphql"
"github.com/spf13/viper"
)
type AuthedTransport struct {
Wrapped http.RoundTripper
}
func (t *AuthedTransport) RoundTrip(req *http.Request) (*http.Response, error) {
key := viper.GetString("api-key")
if key != "" {
req.Header.Set("Authorization", key)
}
rt, err := t.Wrapped.RoundTrip(req)
if err != nil {
return nil, fmt.Errorf("failed roundtrip: %w", err)
}
return rt, nil
}
func InitAPI() graphql.Client {
httpClient := http.Client{
Transport: &AuthedTransport{
Wrapped: http.DefaultTransport,
},
}
return graphql.NewClient(viper.GetString("api-base")+viper.GetString("graphql-api"), &httpClient)
}