Частичное обновление мутаций (GraphQL) - PullRequest
0 голосов
/ 14 февраля 2020

Как я могу иметь возможность обновить узел только с одним изменением поля и оставить остальные поля в покое?

Мой Тип пользователя

type User {
        id: ID!
        user_id: String!
        username: String!
        email: String!
        role: Role!
        isVerified: Boolean!
    }

Мои типы ввода

input UserUpdateInput {
    user_id: String
    username: String
    email: String
    password: String
    role: Role
    isVerified: Boolean
    }
input UserWhereUniqueInput {
    id: ID
    user_id: String
    email: String
    }

Моя мутация введите

type Mutation {
        updateUser(data: UserUpdateInput!, where: UserWhereUniqueInput): User
    }

My Resolver

function updateUser(root, args, context, info){
    return context.db.mutation.updateUser({
      data: args.data,
      where: {
      id: args.where.id     
      }
    }, info)
  }

Этот запрос отправляется на площадке GraphQL

mutation{
    updateUser(
    data: {
      isVerified: true
    }
    where:{
    user_id :  "afc485b"
        }
    )
  {
    isVerified
  }
}

This ошибка становится

{
  "errors": [
    {
      "message": "Cannot read property 'mutation' of undefined",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "updateUser"
      ],
      "extensions": {
        "code": "INTERNAL_SERVER_ERROR",
        "exception": {
          "stacktrace": [
            "TypeError: Cannot read property 'mutation' of undefined"

Кто-то, помогите мне. Что мне не хватает? После обновления моего сервера, предложенного Дэниелом Рарденом в разделе ответов, я получаю новую ошибку

    {
      "message": "Cannot read property 'updateUser' of undefined",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "updateUser"
      ],
      "extensions": {
        "code": "INTERNAL_SERVER_ERROR",
        "exception": {
          "stacktrace": [
            "TypeError: Cannot read property 'updateUser' of undefined"

1 Ответ

0 голосов
/ 14 февраля 2020

Ошибка является результатом неправильного добавления свойства db в ваш контекст. Предполагая, что вы все еще используете версию 1, ваш код должен выглядеть примерно так:

const { prisma } = require('./generated/prisma-client')

const server = new ApolloServer({
  ...
  context: {
    db: prisma,
  },
})
...