github.com/hungdoo/bot@v0.0.0-20240325145135-dd1f386f7b81/src/packages/graphql/client.go (about)

     1  package graphql
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/hungdoo/bot/src/packages/dotenv"
     7  	"github.com/shurcooL/graphql"
     8  	"golang.org/x/oauth2"
     9  )
    10  
    11  var client *Client
    12  
    13  type Client struct {
    14  	*graphql.Client
    15  }
    16  
    17  func GetClient() *Client {
    18  	if client != nil {
    19  		return client
    20  	}
    21  	src := oauth2.StaticTokenSource(
    22  		&oauth2.Token{AccessToken: dotenv.BotEnvs["BOT_GRAPHQL_TOKEN"]},
    23  	)
    24  	httpClient := oauth2.NewClient(context.Background(), src)
    25  
    26  	client = &Client{graphql.NewClient(dotenv.BotEnvs["BOT_VENUS_SUBGRAPH"], httpClient)}
    27  	return client
    28  }