Merge branch 'fix-include'

This commit is contained in:
Joey Baker 2016-07-05 19:12:34 -07:00
commit f71e06362b
2 changed files with 18 additions and 4 deletions

View File

@ -31,6 +31,8 @@ export const list = (server, model) => {
const include = parseInclude(request);
const where = parseWhere(request);
if (include instanceof Error) return void reply(include);
const list = await model.findAll({
where, include,
});

View File

@ -1,18 +1,30 @@
import { omit } from 'lodash';
import { omit, identity } from 'lodash';
export const parseInclude = request => {
const include = Array.isArray(request.query.include) ? request.query.include
: [request.query.include];
const noGetDb = typeof request.getDb !== 'function';
const noRequestModels = request.models;
if (noGetDb && noRequestModels) {
return new Error('`request.getDb` or `request.models` are not defined. Be sure to load hapi-sequelize before hapi-sequelize-crud.');
}
const {models} = !noGetDb
? request.getDb()
: request
;
return include.map(a => {
if (typeof a === 'string') return request.models[a];
if (typeof a === 'string') return models[a];
if (a && typeof a.model === 'string' && a.model.length) {
a.model = request.models[a.model];
a.model = models[a.model];
}
return a;
}).filter(a => a);
}).filter(identity);
};
export const parseWhere = request => {