graphql: add allBugs to root query

This commit is contained in:
Quentin Gliech 2018-07-22 01:12:44 +02:00
parent 4901bdadd3
commit 50fd2943ac
No known key found for this signature in database
GPG Key ID: 22D62B84552719FC

View File

@ -28,6 +28,32 @@ func graphqlSchema() (graphql.Schema, error) {
return snapshot, nil return snapshot, nil
}, },
}, },
// TODO: provide a relay-like schema with pagination
"allBugs": &graphql.Field{
Type: graphql.NewList(bugType),
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
repo := p.Context.Value("repo").(repository.Repo)
ids, err := repo.ListRefs(bug.BugsRefPattern)
if err != nil {
return nil, err
}
var snapshots []bug.Snapshot
for _, ref := range ids {
bug, err := bug.ReadBug(repo, bug.BugsRefPattern+ref)
if err != nil {
return nil, err
}
snapshots = append(snapshots, bug.Compile())
}
return snapshots, nil
},
},
} }
rootQuery := graphql.ObjectConfig{Name: "RootQuery", Fields: fields} rootQuery := graphql.ObjectConfig{Name: "RootQuery", Fields: fields}
schemaConfig := graphql.SchemaConfig{Query: graphql.NewObject(rootQuery)} schemaConfig := graphql.SchemaConfig{Query: graphql.NewObject(rootQuery)}