I have nodejs and graphql application.
My User Schema and resolver using graphql-compose-mongoose:
import { composeWithMongoose } from 'graphql-compose-mongoose';
const UserTC = composeWithMongoose(User, {
fields: { remove: ['password'] },
});
UserTC.addResolver({
name: 'currentUser',
type: UserTC.getType(),
resolve: currentUserResolver, // return user object...
});
I add resolver to my UserTC:
UserTC.addResolver({
name: 'login',
args: {
email: { type: 'String!' },
password: { type: 'String!' },
},
type: /// <---- MISSING TYPE HERE
resolve: async ({ args, context }) => {
const { email, password } = args;
const { token, user } = login({ email, password });
return { token, user }
},
});
I need to return { token, user } for this resolver.
What type should I defined?
This I try but failed:
type: { token: 'String', user: UserTC.getType() }
I don't know if you already solved the question, but this way you can define what you will use as Args and what fields can be Exposed in the resolver
Here's an example using JWT
Now you need to call the resolver somewhere like this
login: UserTC.getResolver('Auth')