Prisma graphql updateNode мутация - PullRequest
       12

Prisma graphql updateNode мутация

0 голосов
/ 25 января 2019

Я пытаюсь настроить мутацию updateNode в graphql с запущенной Prisma на сервере GraphQL-yoga.Вот ошибка, которую я получаю, когда пытаюсь запустить мутацию:

"Переменная \" $ _ v0_data \ "получила недопустимое значение {data: {name: \" Test \ "}, где:{id: \ "cjqulnr0yftuh0a71sdkek697 \"}}; Поле \ "data \" не определено типом CocktailUpdateInput. \ nVariable \ "$ _ v0_data \" получил недопустимое значение {data: {name: \ "Test \"}, где:{id: \ "cjqulnr0yftuh0a71sdkek697 \"}}; Поле \ "где \" не определено типом CocktailUpdateInput. "

Вот мой преобразователь мутаций:

const Mutation = {
  async updateCocktail(parent, args, ctx, info) {
    const data = { ...args };
    delete data.id;
    const where = {id: args.id};
    return await ctx.db.mutation.updateCocktail({ data, where }, info);
  },
}

datamodel.prisma:

type Cocktail {
  id: ID! @unique
  name: String!
  info: String
  glass: Glass
  ingredients: [Ingredient]
  steps: [Step]
}

schema.graphql

type Mutation {
  updateCocktail(data: CocktailUpdateInput!, where: CocktailWhereUniqueInput!): Cocktail
}

и, наконец, вот что я пытаюсь выполнить на детской площадке:

mutation{
  updateCocktail(
    where: {id: "cjqulnr0y0tuh0a71sdkek697"},
    data: {
      name: "Test"
    }
  ){
    id
    name
  }
}

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Если я правильно прочитал ваш распознаватель, вы выполните следующие действия:

  • Возьмите аргументы и поместите их в данные (без идентификатора)
  • Возьмите идентификатор в аргах и поместите его туда, где

Но на игровой площадке вы даете следующие аргументы:

args = {
  where: {id: "cjqulnr0y0tuh0a71sdkek697"},
  data: {
    name: "Test"
  }
}

Они уже хорошо сформированы! Это означает, что ваши средства распознавания будут выполнять следующий шаг и строить следующие переменные:

data = {
  where: {id: "cjqulnr0y0tuh0a71sdkek697"},
  data: {
    name: "Test"
  }
}

where = { id: null }

Вы можете исправить это двумя способами:

1 / Не перестраивать данные и места в средствах разрешения, а просто передавать аргументы в призму

2 / При вызове ваших мутаций дайте ему аргументы следующим образом:

updateCocktail(id: "abc", name: "Test") {...}
0 голосов
/ 25 января 2019

По вашей ошибке проблема должна заключаться в исполнении вашей игровой площадки.Он принимает ваши «где» и «данные» в качестве типов данных.

Вы можете попробовать сделать что-то более похожее на это:

 mutation UpdateCocktailMutation($data: CocktailUpdateInput!, $where: CocktailWhereUniqueInput!) {
    updateCocktail(data: $data, where: $where) {
      id
      name
    }
  }

и в нижней части игровой площадки у них есть запроспеременное поле.Заполните его ваши переменные данные.Исправьте мои правила учета регистра и имен, так как я мог пропустить некоторые из них.

...