Skip to content

Commit

Permalink
feat: Support member key in filters in query (#91)
Browse files Browse the repository at this point in the history
Member key is more correct name for existing dimension key, since member
in filter could be either dimension or member.

Keep support for dimension key for backwards compatibility.
  • Loading branch information
keydunov authored and paveltiunov committed Apr 22, 2019
1 parent 782f9c8 commit e1fccc0
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions packages/cubejs-api-gateway/index.js
Expand Up @@ -105,10 +105,11 @@ const querySchema = Joi.object().keys({
measures: Joi.array().items(id),
dimensions: Joi.array().items(dimensionWithTime),
filters: Joi.array().items(Joi.object().keys({
dimension: id.required(),
dimension: id,
member: id,
operator: Joi.valid(operators).required(),
values: Joi.array().items(Joi.string().allow(''))
})),
}).xor('dimension', 'member')),
timeDimensions: Joi.array().items(Joi.object().keys({
dimension: id.required(),
granularity: Joi.valid('day', 'month', 'year', 'week', 'hour', null),
Expand Down Expand Up @@ -183,6 +184,12 @@ const normalizeQuery = (query) => {
rowLimit: query.rowLimit || query.limit,
timezone,
order,
filters: (query.filters || []).map(f => (
{
...f,
dimension: (f.dimension || f.member)
}
)),
dimensions: (query.dimensions || []).filter(d => d.split('.').length !== 3),
timeDimensions: (query.timeDimensions || []).map(td => {
let dateRange;
Expand Down

0 comments on commit e1fccc0

Please sign in to comment.