Make runParameters callbacks support async

This commit is contained in:
SachaG 2017-09-22 16:20:07 +02:00
parent e50f8effa8
commit c52e53afbe
4 changed files with 14 additions and 14 deletions

View file

@ -15,8 +15,8 @@ const resolvers = {
name: 'moviesList',
resolver(root, {terms = {}}, context, info) {
let {selector, options} = context.Movies.getParameters(terms, {}, context.currentUser);
async resolver(root, {terms = {}}, context, info) {
let {selector, options} = await context.Movies.getParameters(terms, {}, context.currentUser);
return context.Movies.find(selector, options).fetch();
},
@ -37,8 +37,8 @@ const resolvers = {
name: 'moviesTotal',
resolver(root, {terms = {}}, context) {
const {selector, options} = context.Movies.getParameters(terms, {}, context.currentUser);
async resolver(root, {terms = {}}, context) {
const {selector, options} = await context.Movies.getParameters(terms, {}, context.currentUser);
return context.Movies.find(selector, options).count();
},

View file

@ -14,7 +14,7 @@ export const getDefaultResolvers = collectionName => ({
name: `${collectionName}List`,
resolver(root, {terms = {}}, context, info) {
async resolver(root, {terms = {}}, context, info) {
debug(`//--------------- start ${collectionName} list resolver ---------------//`);
debug(terms);
@ -26,7 +26,7 @@ export const getDefaultResolvers = collectionName => ({
const collection = context[collectionName];
// get selector and options from terms and perform Mongo query
let {selector, options} = collection.getParameters(terms, {}, context);
let {selector, options} = await collection.getParameters(terms, {}, context);
options.skip = terms.offset;
debug({ selector, options });
@ -88,11 +88,11 @@ export const getDefaultResolvers = collectionName => ({
name: `${collectionName}Total`,
resolver(root, {terms}, context) {
async resolver(root, {terms}, context) {
const collection = context[collectionName];
const {selector} = collection.getParameters(terms, {}, context);
const {selector} = await collection.getParameters(terms, {}, context);
return collection.find(selector).count();
},

View file

@ -180,7 +180,7 @@ export const createCollection = options => {
// ------------------------------------- Parameters -------------------------------- //
collection.getParameters = (terms = {}, apolloClient, context) => {
collection.getParameters = async (terms = {}, apolloClient, context) => {
// debug(terms);
@ -200,7 +200,7 @@ export const createCollection = options => {
}
// iterate over posts.parameters callbacks
parameters = runCallbacks(`${collectionName.toLowerCase()}.parameters`, parameters, _.clone(terms), apolloClient, context);
parameters = await runCallbacks(`${collectionName.toLowerCase()}.parameters`, parameters, _.clone(terms), apolloClient, context);
// extend sort to sort posts by _id to break ties, unless there's already an id sort
// NOTE: always do this last to avoid overriding another sort

View file

@ -27,10 +27,10 @@ const resolvers = {
name: 'UsersList',
resolver(root, {terms}, {currentUser, Users}, info) {
async resolver(root, {terms}, {currentUser, Users}, info) {
// get selector and options from terms and perform Mongo query
let {selector, options} = Users.getParameters(terms);
let {selector, options} = await Users.getParameters(terms);
options.limit = (terms.limit < 1 || terms.limit > 100) ? 100 : terms.limit;
options.skip = terms.offset;
const users = Users.find(selector, options).fetch();
@ -62,8 +62,8 @@ const resolvers = {
name: 'UsersTotal',
resolver(root, {terms}, context) {
const {selector} = context.Users.getParameters(terms);
async resolver(root, {terms}, context) {
const {selector} = await context.Users.getParameters(terms);
return context.Users.find(selector).count();
},