grapher/lib/query/createQuery.js

24 lines
941 B
JavaScript
Raw Normal View History

2016-09-16 19:22:12 +03:00
import Query from './query.js';
import NamedQueryStore from '../namedQuery/store.js';
2016-09-16 19:22:12 +03:00
2016-09-28 18:30:12 +03:00
export default (data, ...args) => {
2016-09-16 19:22:12 +03:00
if (_.keys(data).length > 1) {
throw new Meteor.Error('invalid-query', 'When using createQuery you should only have one main root point that represents the collection name.')
2016-09-16 19:22:12 +03:00
}
const entryPointName = _.first(_.keys(data));
2016-09-16 19:22:12 +03:00
const collection = Mongo.Collection.get(entryPointName);
2016-09-16 19:22:12 +03:00
if (!collection) {
const namedQuery = NamedQueryStore.get(entryPointName);
if (!namedQuery) {
throw new Meteor.Error('entry-point-not-found', `We could not find any collection or named query with the name "${entryPointName}". Make sure you have them loaded in the environment you are executing *createQuery*`)
} else {
return namedQuery.clone(data[entryPointName], ...args);
}
2016-09-16 19:22:12 +03:00
}
return new Query(collection, data[entryPointName], ...args);
2016-09-16 19:22:12 +03:00
}