Reputation: 11
My schema.qraphqls:
type Account {
id: Int
nickname: String
}
directive @delete on FIELD
type Query {
accounts: [Account]
}
Implementation of @delete directive:
func (d directive) Delete(ctx context.Context, obj interface{}, next graphql.Resolver) (res interface{}, err error) {
fieldContext := graphql.GetFieldContext(ctx)
parentResult := fieldContext.Parent.Parent.Result.([]*Account)
parentResult[0] = nil
parentResult[1] = nil
return next(ctx)
}
My query:
query Accounts {
accounts {
nickname @delete
}
}
Every time I send a request I get a completely different result: maybe it will give me something like this:
{
"data": {
"accounts": [
null,
{
"nickname": "Jane"
},
{
"nickname": "Jack"
}
]
}
}
Maybe only the second object will be null, maybe none, or maybe 2 at once, which is what I want. What is this based on?
Upvotes: 1
Views: 59