对于GRAND堆栈,在编写自己的用于突变的自定义密码查询时,如何使用存储在Apollo Server上下文中的用户对象?

时间:2019-07-07 15:47:25

标签: neo4j grandstack

我正在编写一个使用GRAND堆栈进行突变的自定义密码查询。但是,从我编写的密码查询访问存储在Apollo Server上下文中的用户对象时遇到问题。

所以不要这样做,

createUser(id: String): User
    @cypher(
      statement: "CREATE (u:User {id: $id}) RETURN u"
    )

我想做类似的事情

createUser: User
    @cypher(
      statement: "CREATE (u:User {id: context.user.id}) RETURN u"
    )

1 个答案:

答案 0 :(得分:0)

Apollo上下文不会本地传递给密码查询。 因此,您必须根据需要编写相应的解析器。

您可以尝试类似的方法吗:

export const typeDefs = `
  ...
  type Mutation {
    ...
    createUser: User  @cypher(statement: "CREATE (u:User {id: context.user.id})  RETURN u")
     ...
  }`

export const resolvers = {
  ...
  Mutation: {
    ...
    createUser(object, params, ctx, resolveInfo) {
      let newParms = params;
      params.context = ctx;
      return neo4jgraphql(object, newParms, ctx, resolveInfo, true);
    }
    ...
  }
}