openstates/openstates.go

37 lines
729 B
Go

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 {
//}