ParameterNotFoundException для _Neo4jDateTimeInput - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь указать запрос, используя 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
  }
...