Open CraigDeverall opened 3 years ago
I'm having the same error too.
Here is how I replicated the bug and the console outputs:
query {
Content {
title
numberOfUpvotes
}
}
console output:
neo4j-graphql-js MATCH (`content`:`Content`) RETURN `content` { .title ,numberOfUpvotes: apoc.cypher.runFirstColumn("MATCH (this)<-[uc:UPVOTED_CONTENT]-() RETURN COUNT(uc)", {this: content, cypherParams: $cypherParams}, false)} AS `content` +3m
neo4j-graphql-js {
"offset": 0,
"first": -1,
"cypherParams": {
"currentUser": null
}
} +0ms
Notice that the second code block here contains "cypherParams".
mutation {
UpdateContent(id:"aeba18b0-c0d4-4715-b701-eae7e4d4934e" title:"An interesting Title2") {
title
numberOfUpvotes
}
}
console output:
neo4j-graphql-js MATCH (`content`:`Content`{id: $params.id}) SET `content` += {title:$params.title} RETURN `content` { .title ,numberOfUpvotes: apoc.cypher.runFirstColumn("MATCH (this)<-[uc:UPVOTED_CONTENT]-() RETURN COUNT(uc)", {this: content, cypherParams: $cypherParams}, false)} AS `content` +9m
neo4j-graphql-js {
"params": {
"id": "aeba18b0-c0d4-4715-b701-eae7e4d4934e",
"title": "An interesting Title2"
},
"first": -1,
"offset": 0
} +0ms
Notice that the second code block here doesn't contain "cypherParams". It may be why the cypher query that is run from the generated mutation returns this error.
Replicated situation below:
Type Definition:
type MyType { id: ID! name: string custom: @cypher(statement: """ """) }
Mutation Call:
mutation ($id: ID!, $name: String! ) { UpdateMyType(id: $id, name: $name) { id name custom } }
Error:
"Neo4jError: Expected parameter(s): cypherParams", "", " at captureStacktrace (node_modules/neo4j-driver/lib/result.js:275:15)", " at new Result (node_modules/neo4j-driver/lib/result.js:66:19)", " at newCompletedResult (node_modules/neo4j-driver/lib/transaction.js:446:10)", " at Object.run (node_modules/neo4j-driver/lib/transaction.js:285:14)", " at Transaction.run (node_modules/neo4j-driver/lib/transaction.js:121:32)", " at _callee2$ (node_modules/neo4j-graphql-js/dist/index.js:192:35)", " at tryCatch (node_modules/regenerator-runtime/runtime.js:63:40)", " at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:293:22)", " at Generator.next (node_modules/regenerator-runtime/runtime.js:118:21)", " at asyncGeneratorStep (node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js:5:24)"
Wasn't a critical issue to work around but it felt like a bug.
How did u manage to solve this. The cypher statement doesnt seem to need a param at all @CraigDeverall
I'm sorry @teenkevo I couldn't say exactly. I believe it was worked around by simply not returning that custom cypher statement key. I highly recommend porting whatever you have to the now official version of this library though. https://neo4j.com/docs/graphql-manual/current/ https://www.npmjs.com/package/@neo4j/graphql
Let me do just that, thanks. @CraigDeverall
Replicated situation below:
Type Definition:
type MyType { id: ID! name: string custom: @cypher(statement: """ """) }
Mutation Call:
mutation ($id: ID!, $name: String! ) { UpdateMyType(id: $id, name: $name) { id name custom } }
Error:
"Neo4jError: Expected parameter(s): cypherParams", "", " at captureStacktrace (node_modules/neo4j-driver/lib/result.js:275:15)", " at new Result (node_modules/neo4j-driver/lib/result.js:66:19)", " at newCompletedResult (node_modules/neo4j-driver/lib/transaction.js:446:10)", " at Object.run (node_modules/neo4j-driver/lib/transaction.js:285:14)", " at Transaction.run (node_modules/neo4j-driver/lib/transaction.js:121:32)", " at _callee2$ (node_modules/neo4j-graphql-js/dist/index.js:192:35)", " at tryCatch (node_modules/regenerator-runtime/runtime.js:63:40)", " at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:293:22)", " at Generator.next (node_modules/regenerator-runtime/runtime.js:118:21)", " at asyncGeneratorStep (node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js:5:24)"
Wasn't a critical issue to work around but it felt like a bug.