import { mutationField, arg, inputObjectType } from '@nexus/schema'; import { userService } from '../user.service'; import { UserType } from './index'; export const RegisterUserInputType = inputObjectType({ name: 'RegisterUserInput', definition(t) { t.string('email', { required: true }); t.string('firstName', { required: true }); t.string('lastName', { required: true }); t.string('password', { required: true }); }, }); /** * Mutation: Register a new User */ export const registerUserMF = mutationField('registerUser', { type: UserType, args: { input: arg({ type: RegisterUserInputType, description: 'User Details' }), }, resolve: async (root, args, ctx) => { return userService.registerUser(args.input, { ability: ctx.state.abilities }) }, });