Ошибка GraphQL: неизвестный аргумент "удален" в поле "removeFromPostsOnComments"

Итак, у меня есть отношения один ко многим от сообщений до комментариев:

type Comments {
  createdAt: DateTime!
  deleted: Boolean
  id: ID!
  posts: Posts @relation(name: "PostsOnComments")
  text: String!
  updatedAt: DateTime!
  user: String!
}

type Posts {
  caption: String!
  comments: [Comments!]! @relation(name: "PostsOnComments")
  createdAt: DateTime!
  displaysrc: String!
  id: ID!
  likes: Int
  updatedAt: DateTime!
}

и хотят запустить мутацию, которая, так же как и удаление связи между публикацией и комментарием, пытается обновить поле "Удалено, в комментариях, до true:

mutation removeComment ($id: ID!, $cid: ID!, $stateB: Boolean) {
  removeFromPostsOnComments (postsPostsId: $id, commentsCommentsId: $cid, deleted: $stateB){
    postsPosts {
      __typename
      id
      comments {
        __typename
        id
        text
        user
        deleted
        posts {
          __typename
          id
        }
      }
    }
  }
}
  
Query Variables

{
  "id": "cj0qkl04vep8k0177tky596og",
  "cid": "cj1de905k8ya201934l84c3id"
}

Но когда я запускаю мутацию, я получаю следующее сообщение об ошибке:

GraphQL error: Unknown argument 'deleted' on field 'removeFromPostsOnComments' of type 'Mutation'. (line 2, column 74):
  removeFromPostsOnComments(postsPostsId: $id, commentsCommentsId: $cid, deleted: $stateB) {

Как мне здесь объяснили, удаляется только ссылка между сообщениями и комментариями, а не сама запись "Комментарий". Поэтому я думаю, что, поскольку запись не удалена, почему я не могу обновить поле "удалено"?

Я хочу сделать это так, чтобы она инициировала подписку, которая отслеживает обновленное поле "удалено".

Сгенерированный выход мутации выглядит следующим образом:

  "data": null,
  "errors": [
    {
      "message": "Unknown argument 'deleted' on field 'removeFromPostsOnComments' of type 'Mutation'. (line 2, column 77):\n    removeFromPostsOnComments (postsPostsId: $id, commentsCommentsId: $cid, deleted: $stateB){\n                                                                            ^",
      "locations": [
        {
          "line": 2,
          "column": 77
        }
      ]
    }
  ]
}

Как видно на рисунке, "удалено" определенно включено в "Комментарии" моей схемы GraphCool:

введите описание изображения здесь

1 ответ

Решение

Я воспроизвел вашу проблему. Прежде всего, вы получаете сообщение об ошибке, потому что deleted не является частью аргументов removeFromPostsOnComments-мутации, вы также видите, что в документах:

введите описание изображения здесь

Если вы хотите обновить deleted поле на Comments типа, вы должны использовать updateComments-mutation:

mutation {
  updateComments(id: "cj1de905k8ya201934l84c3id", deleted: true) {
    id
  }
}
Другие вопросы по тегам