Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "github.com/graphql-go/graphql"
- "github.com/graphql-go/handler"
- Mocks "graphql/mocks"
- "graphql/models"
- "graphql/resolvers"
- "log"
- "net/http"
- "strings"
- )
- var rootQuery = graphql.NewObject(graphql.ObjectConfig{
- Name: "query",
- Fields: graphql.Fields{
- "users": &graphql.Field{
- Type: graphql.NewList(models.UserSchema),
- Args: graphql.FieldConfigArgument{
- "name": &graphql.ArgumentConfig{
- Type: graphql.NewNonNull(graphql.String),
- Description: "Some desc",
- },
- },
- Resolve: func(params graphql.ResolveParams) (interface{}, error){
- name := params.Args["name"].(string);
- filtered := resolvers.UserFilter(Mocks.Users(),func(v models.User){
- return strings.Contains(v.Name, name).(bool);
- });
- return filtered,nil
- },
- },
- },
- })
- func main() {
- schema, err := graphql.NewSchema(graphql.SchemaConfig{
- Query:rootQuery,
- })
- if err != nil {
- log.Fatalf("failed to create new schema! Error: %v",err)
- }
- h := handler.New(&handler.Config{
- Schema: &schema,
- Pretty: true,
- GraphiQL: true,
- })
- http.Handle("/graphql", h);
- http.ListenAndServe(":9090",nil)
- fmt.Println("Server is running at port 9090")
- }
Advertisement
Add Comment
Please, Sign In to add comment