import { FieldResolver, idArg, queryField, extendType } from '@nexus/schema'; import { ApolloError } from 'apollo-server-micro'; import { authenticateQuery } from '../../../schema/authenticate-query'; import { RecipeCollection } from '../collection-model'; export const fetchRecipeCollections: FieldResolver< 'Query', 'recipeCollections' > = async (root, args, ctx, info) => { // Auth const { user, abilities } = authenticateQuery(ctx); // Execute return user .getRecipeCollections() .populate('nodes.recipe') .exec() .catch(err => { throw new ApolloError('Error Retrieving Recipes', '400'); }); }; /** * Retrieve all recipes */ export const recipeCollectionsQF = extendType({ type: 'Query', definition(t) { t.list.field('recipeCollections', { type: 'RecipeCollection', resolve: fetchRecipeCollections, }); }, });