Ошибка 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
}
}