...

Source file src/edge-infra.dev/pkg/f8n/sovereign/client/client.go

Documentation: edge-infra.dev/pkg/f8n/sovereign/client

     1  package client
     2  
     3  import (
     4  	"context"
     5  	"encoding/json"
     6  	"fmt"
     7  	"io"
     8  	"net/http"
     9  
    10  	"google.golang.org/api/idtoken"
    11  
    12  	"edge-infra.dev/pkg/f8n/pgrstoauth"
    13  )
    14  
    15  type Client struct {
    16  	AccessToken string
    17  }
    18  
    19  func New() (*Client, error) {
    20  	// TODO(dk185217): this doesnt do anything. refactor heavily. it was checked in
    21  	// as demo-ware
    22  	audience := "1037378570607-adh9hflmpotr1kkpdaterc7ac2mffos9.apps.googleusercontent.com" //nolint:gosec // Apparently do nothing, is demo aware.
    23  	ctx := context.Background()
    24  
    25  	client, err := idtoken.NewClient(ctx, audience)
    26  	if err != nil {
    27  		return nil, fmt.Errorf("idtoken.NewClient: %w", err)
    28  	}
    29  
    30  	request, err := http.NewRequest("POST", "https://sovereign.edge-infra.dev/oauth/token", nil)
    31  	if err != nil {
    32  		return nil, fmt.Errorf("client.Do: %w", err)
    33  	}
    34  
    35  	response, err := client.Do(request)
    36  	if err != nil {
    37  		return nil, fmt.Errorf("client.Do: %w", err)
    38  	}
    39  	defer response.Body.Close()
    40  
    41  	tokenRespRaw, err := io.ReadAll(response.Body)
    42  	if err != nil {
    43  		return nil, err
    44  	}
    45  
    46  	fmt.Println(string(tokenRespRaw))
    47  
    48  	tokenResp := &pgrstoauth.OAuthTokenResp{}
    49  
    50  	err = json.Unmarshal(tokenRespRaw, tokenResp)
    51  	if err != nil {
    52  		return nil, err
    53  	}
    54  
    55  	return &Client{}, nil
    56  }
    57  

View as plain text