import { GraphQLError } from 'graphql' export default { Query: { messages: async (parent, args, { models }) => await models.message.findMany(), message: async (parent, { id }, { models }) => await models.message.findUnique({ where: { id } }) }, Mutation: { createMessage: async (parent, { text }, { me, models }) => { if (!text) { throw new GraphQLError('Must have text', { extensions: { code: 'BAD_INPUT' } }) } return await models.message.create({ data: { text, userId: me.id } }) }, deleteMessage: async (parent, { id }, { models }) => await models.message.delete({ where: { id } }) }, Message: { user: async (message, args, { models }) => await models.user.findUnique({ where: { id: message.userId } }) } }