package client import ( "context" "encoding/json" "fmt" "io" "net/http" "google.golang.org/api/idtoken" "edge-infra.dev/pkg/f8n/pgrstoauth" ) type Client struct { AccessToken string } func New() (*Client, error) { // TODO(dk185217): this doesnt do anything. refactor heavily. it was checked in // as demo-ware audience := "1037378570607-adh9hflmpotr1kkpdaterc7ac2mffos9.apps.googleusercontent.com" //nolint:gosec // Apparently do nothing, is demo aware. ctx := context.Background() client, err := idtoken.NewClient(ctx, audience) if err != nil { return nil, fmt.Errorf("idtoken.NewClient: %w", err) } request, err := http.NewRequest("POST", "https://sovereign.edge-infra.dev/oauth/token", nil) if err != nil { return nil, fmt.Errorf("client.Do: %w", err) } response, err := client.Do(request) if err != nil { return nil, fmt.Errorf("client.Do: %w", err) } defer response.Body.Close() tokenRespRaw, err := io.ReadAll(response.Body) if err != nil { return nil, err } fmt.Println(string(tokenRespRaw)) tokenResp := &pgrstoauth.OAuthTokenResp{} err = json.Unmarshal(tokenRespRaw, tokenResp) if err != nil { return nil, err } return &Client{}, nil }