I\'m just getting to grips with GraphQL,
I have set up the following query:
type: UserType,
args: {
id: { name: \'id\', type: new GraphQL
Define an interface credentials
and have that implemented as id
or email
.
There's no built-in way to do that in GraphQL. You need to make your arguments nullable (by removing the GraphQLNonNull
wrapper type from both of them) and then, inside your resolver, you can just do a check like:
resolve: (root, { id, email }, { db: { User } }, fieldASTs) => {
if (!id && !email) return Promise.reject(new Error('Must pass in either an id or email'))
if (id && email) return Promise.reject(new Error('Must pass in either an id or email, but not both.'))
// the rest of your resolver
}