genql: quick hack at variables
This commit is contained in:
+14
-2
@@ -34,6 +34,12 @@ func Main() {
|
||||
return
|
||||
}
|
||||
|
||||
if len(os.Args) != 2 {
|
||||
err = fmt.Errorf("usage: %v <username>", os.Args[0])
|
||||
return
|
||||
}
|
||||
username := os.Args[1]
|
||||
|
||||
httpClient := http.Client{
|
||||
Transport: &authedTransport{
|
||||
key: key,
|
||||
@@ -41,10 +47,16 @@ func Main() {
|
||||
},
|
||||
}
|
||||
graphqlClient := graphql.NewClient("https://api.github.com/graphql", &httpClient)
|
||||
resp, err := getViewer(context.Background(), graphqlClient)
|
||||
|
||||
viewerResp, err := getViewer(context.Background(), graphqlClient)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
fmt.Println("you are", *viewerResp.Viewer.Name)
|
||||
|
||||
fmt.Println("you are:", *resp.Viewer.Name)
|
||||
userResp, err := getUser(context.Background(), graphqlClient, username)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
fmt.Println(username, "is", *userResp.User.Name)
|
||||
}
|
||||
|
||||
+27
-1
@@ -14,6 +14,7 @@ type getViewerResponse = struct {
|
||||
|
||||
// TODO
|
||||
func getViewer(ctx context.Context, client *graphql.Client) (*getViewerResponse, error) {
|
||||
|
||||
var retval getViewerResponse
|
||||
err := client.MakeRequest(ctx, `
|
||||
query getViewer {
|
||||
@@ -21,6 +22,31 @@ query getViewer {
|
||||
Name: name
|
||||
}
|
||||
}
|
||||
`, &retval)
|
||||
`, &retval, nil)
|
||||
return &retval, err
|
||||
}
|
||||
|
||||
type getUserResponse = struct {
|
||||
User *struct {
|
||||
Name *string
|
||||
}
|
||||
}
|
||||
|
||||
// TODO
|
||||
func getUser(ctx context.Context, client *graphql.Client, login string) (*getUserResponse, error) {
|
||||
|
||||
variables := map[string]interface{}{
|
||||
|
||||
"login": login,
|
||||
}
|
||||
|
||||
var retval getUserResponse
|
||||
err := client.MakeRequest(ctx, `
|
||||
query getUser ($login: String!) {
|
||||
User: user(login: $login) {
|
||||
Name: name
|
||||
}
|
||||
}
|
||||
`, &retval, variables)
|
||||
return &retval, err
|
||||
}
|
||||
|
||||
@@ -4,3 +4,10 @@ query getViewer {
|
||||
Name: name
|
||||
}
|
||||
}
|
||||
|
||||
# getUser gets the given user's name.
|
||||
query getUser($login: String!) {
|
||||
User: user(login: $login) {
|
||||
Name: name
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user