package openstates import ( "context" "log" "github.com/machinebox/graphql" ) type OpenStatesApi struct { ApiKey string Client *graphql.Client } func NewOpenStatesApi(key string) *OpenStatesApi { o := OpenStatesApi{ ApiKey: key, } o.Client = graphql.NewClient("https://openstates.org/graphql") return &o } func (o *OpenStatesApi) TurnOnLogging() { o.Client.Log = func(s string) { log.Println(s) } } func (o *OpenStatesApi) MakeRequest(req *graphql.Request, res interface{}) { ctx := context.Background() req.Header.Add("X-API-KEY", o.ApiKey) if err := o.Client.Run(ctx, req, &res); err != nil { log.Fatal(err) } } //func (o *OpenStatesApi) GetLegislatorsForArea(lat float, long float) []PersonNode { //}