Vulcan/packages/vulcan-comments/lib/resolvers.js

49 lines
1.2 KiB
JavaScript
Raw Normal View History

// root resolvers: basic list, single, and total query resolvers
const resolvers = {
list: {
name: 'commentsList',
resolver(root, {terms}, {currentUser, Users, Comments}) {
// get selector and options from terms and perform Mongo query
let {selector, options} = Comments.getParameters(terms);
options.skip = terms.offset;
const comments = Comments.find(selector, options).fetch();
// restrict documents fields
const restrictedComments = Users.restrictViewableFields(currentUser, Comments, comments);
// prime the cache
restrictedComments.forEach(comment => Comments.loader.prime(comment._id, comment));
return restrictedComments;
},
},
single: {
name: 'commentsSingle',
async resolver(root, {documentId}, {currentUser, Users, Comments}) {
const comment = await Comments.loader.load(documentId);
return Users.restrictViewableFields(currentUser, Comments, comment);
2016-11-03 21:39:09 +09:00
},
2016-11-05 18:37:46 +09:00
},
total: {
name: 'commentsTotal',
2016-12-02 13:43:26 +01:00
// broken because it doesn't take any arguments in the query
resolver(root, {terms}, context) {
return context.Comments.find({postId: terms.postId}).count();
},
}
2016-11-03 21:39:09 +09:00
};
export default resolvers;