Dan
Dan

Reputation: 11

gqlgen returns different values

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

Answers (0)

Related Questions