не может написать мутацию с массивом строк - PullRequest
0 голосов
/ 24 января 2019

Невозможно использовать set в графической игровой площадке со скалярным типом списка.

Я создал свой Prisma datamodel.graphql и развернул его.Одно из полей в моем типе упражнения - это список движений.Я использовал скалярный тип списка, чтобы определить это поле, и написал сопутствующую мутацию в моем файле mutation.js.Когда я пытаюсь добавить новое упражнение в мою игровую площадку graphql, я получаю эту ошибку.

{
  "data": null,
  "errors": [
    {
      "message": "Variable \"$_v0_data\" got invalid value {\"name\":\"split squat 3\",\"movement\":[\"push\",\"pull\"],\"liked\":false}; Field \"0\" is not defined by type ExerciseCreatemovementInput at value.movement.\nVariable \"$_v0_data\" got invalid value {\"name\":\"split squat 3\",\"movement\":[\"push\",\"pull\"],\"liked\":false}; Field \"1\" is not defined by type ExerciseCreatemovementInput at value.movement.",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "createExercise"
      ]
    }
  ]
}

Вот мутация, которую я написал в детской площадке graphql.

mutation {
  createExercise(
    name: "split squat 3"
    movement: ["push", "pull"]
    liked: false
  ) {
    id
    name
  }
}

Вот модель данных.файл graphql.

type User {
  id: ID! @unique
  name: String!
}

# model for exercises
type Exercise {
  id: ID! @unique
  name: String!
  movement: [String!]!
  liked: Boolean
  video: String
}

Когда я пишу мутацию без каких-либо строк и просто пустого массива, как это,

mutation {
  createExercise(
    name: "split squat 3"
    movement: []
    liked: false
  ) {
    id
    name
  }
}

все работает просто отлично, и упражнение добавляется как новый узел.

Когда я пытаюсь написать мутацию с помощью set,

mutation {
  createExercise(
    name: "split squat 3"
    movement: {set: ["push","pull"]}
    liked: false
  ) {
    id
    name
  }
}

Я также получаю сообщение об ошибке.

Я могу войти в prisma.io и добавитьстроки в массив, создавая вручную новый узел.

Я не уверен, почему я не могу добавить список строк в моей мутации.=

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

movement: {set: ["push","pull"]} работает на меня.

0 голосов
/ 15 марта 2019

Вы должны создать отдельный вход, как в схеме призмы.

input ExcerciseCreatemovementInput{
  set: [String!]
}
...