Я пытаюсь указать запрос, используя SDL, например:
type User {
id: ID!
name: String!
email: String!
join: DateTime!
lastLogin: DateTime!
}
type Query {
findUsers(date: DateTime): [Sprint]
@cypher(
statement: "MATCH (u: User) WHERE u.join <= $date AND u.lastLogin >= $date RETURN s"
)
}
Запустите сервер Apollo и выполните следующий запрос GraphQL
findUsers(date: {year: 2020, month: 3, day: 1, hour: 11, minute: 0, second: 0}) {
id
name
email
}
Сервер выдает ошибку
SERVER ERROR
Failed to invoke function `apoc.cypher.runFirstColumn`: Caused by: org.neo4j.exceptions.ParameterNotFoundException: Expected parameter(s): date
GraphQL request:2:3
1 | {
2 | findUsers(date: {year: 2020, month: 3, day: 1, hour: 11, minute: 0, second: 0}) {
| ^
3 | name
ОБНОВЛЕНИЕ Я могу обойти проблему, передав строку в запрос и приведя ее к шифру, но мне не нравится эта опция, например
SDL
type Query {
findUsers2(date: String!): [Sprint]
@cypher(
statement: "MATCH (u: User) WHERE u.join <= date($date) AND u.lastLogin >= date($date) RETURN s"
)
}
GraphQL
findUsers2(date: "2020-03-01T11:00.000Z"}) {
id
name
email
}