Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error: Invalid AST Node: {"input":"** } on graphql mutation (Amplify client)

I tried to use example schema on api doc("https://aws-amplify.github.io/docs/cli-toolchain/graphql?sdk=js") like below on Many-To-Many Connections

type Post @model {
  id: ID!
  title: String!
  editors: [PostEditor] @connection(keyName: "byPost", fields: ["id"])
}

# Create a join model and disable queries as you don't need them
# and can query through Post.editors and User.posts
type PostEditor
  @model(queries: null)
  @key(name: "byPost", fields: ["postID", "editorID"])
  @key(name: "byEditor", fields: ["editorID", "postID"]) {
  id: ID!
  postID: ID!
  editorID: ID!
  post: Post! @connection(fields: ["postID"])
  editor: User! @connection(fields: ["editorID"])
}

type User @model {
  id: ID!
  username: String!
  posts: [PostEditor] @connection(keyName: "byEditor", fields: ["id"])
}

I created all items and then I tried to delete them but I failed especially on PostEditor.

There is a mutation to delete PostEditor so I called it like below

API.graphql(graphqlOperation((deletePostEditor, {input: {id},})))

It fails with below error message.

Error: Invalid AST Node: {"input":"b2f7064c-af32-49cd-8c87-*******"}

I think I provided right ID. I checked it on query.

like image 575
MinLoveSu Avatar asked Dec 29 '19 02:12

MinLoveSu


1 Answers

You should pass your parameters as a second parameter of graphqlOperation. so , check your parentheses
API.graphql(graphqlOperation((deletePostEditor, {input: {id},}))),you have one pair extra parenthesis

below is correct one
API.graphql(graphqlOperation(deletePostEditor, { input: { id } }))

  • first param=deletePostEditor
  • second param={ input: { id } }

tiny mistake, Isn't It?

like image 118
Alex Avatar answered Sep 17 '22 23:09

Alex