提取数据后的apollo graphql服务器隐私控制

时间:2019-03-10 12:14:52

标签: node.js express graphql apollo-server mern

所以,我不知道如何在graphql服务上进行处理。
我正在将服务从其余部分迁移-express api到apollo api。
我当前的mongo模式如下:

const PostSchema = new mongoose.Schema({
  title: { type: String, required: true },
  body: { type: String },
  uid: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
  privacy: { type: String, enum: ['everyone','followers','onlyme'], default: 'everyone' },
});

const UserSchema = new mongoose.Schema({
  name: { type: String, required: true },
  followers: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
});

在快速环境中,我曾经和人口稠密的用户发帖,然后根据用户关注者应用隐私控制功能。

但是在阿波罗中,填充后我无法访问帖子。帖子字段解析后,我在哪里可以应用指令?

graphql模式:

type User {
    _id: ID!  
    name: String
    followers: [ID]
}

type Post {
    _id: ID!  
    title: String!
    body:String
    uid :User @privacy
}

extend type Query{
    post(_id: String):Post
    posts:[Post]

}

后解析器:

{
    Query: {
    post: (p, a, ctx, info) => {
      return ctx.modules.post.getPost(a._id)
    }
  },
  Post: {
    uid: (p, a, ctx, info) => {
      return ctx.modules.user.getUser(p.uid);
    }
  },
}

0 个答案:

没有答案