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 }