@cubejs-backend/api-gateway
Advanced tools
Comparing version 0.6.1 to 0.6.2
@@ -6,2 +6,14 @@ # Change Log | ||
## [0.6.2](https://github.com/statsbotco/cubejs-client/compare/v0.6.1...v0.6.2) (2019-04-12) | ||
### Features | ||
* Natural language date range support ([b962e80](https://github.com/statsbotco/cubejs-client/commit/b962e80)) | ||
* **api-gateway:** Order support ([670237b](https://github.com/statsbotco/cubejs-client/commit/670237b)) | ||
## [0.6.1](https://github.com/statsbotco/cubejs-client/compare/v0.6.0...v0.6.1) (2019-04-11) | ||
@@ -8,0 +20,0 @@ |
31
index.js
@@ -5,2 +5,3 @@ const jwt = require('jsonwebtoken'); | ||
const moment = require('moment'); | ||
const dateParser = require('./dateParser'); | ||
@@ -115,4 +116,8 @@ class UserError extends Error {} | ||
granularity: Joi.valid('day', 'month', 'year', 'week', 'hour', null), | ||
dateRange: Joi.array().items(Joi.string()).min(1).max(2) | ||
dateRange: [ | ||
Joi.array().items(Joi.string()).min(1).max(2), | ||
Joi.string() | ||
] | ||
})), | ||
order: Joi.object().pattern(id, Joi.valid('asc', 'desc')), | ||
segments: Joi.array().items(id), | ||
@@ -165,11 +170,25 @@ timezone: Joi.string(), | ||
})); | ||
const timezone = query.timezone || 'UTC'; | ||
const order = query.order && Object.keys(query.order).map(k => ({ | ||
id: k, | ||
desc: query.order[k] === 'desc' | ||
})); | ||
return { | ||
...query, | ||
rowLimit: query.rowLimit || query.limit, | ||
timezone: query.timezone || 'UTC', // TODO get from bot | ||
timezone, | ||
order, | ||
dimensions: (query.dimensions || []).filter(d => d.split('.').length !== 3), | ||
timeDimensions: (query.timeDimensions || []).map(td => ({ | ||
...td, | ||
dateRange: td.dateRange && td.dateRange.length === 1 ? [td.dateRange[0], td.dateRange[0]] : td.dateRange | ||
})).concat(regularToTimeDimension) | ||
timeDimensions: (query.timeDimensions || []).map(td => { | ||
let dateRange; | ||
if (typeof td.dateRange === 'string') { | ||
dateRange = dateParser(td.dateRange); | ||
} else { | ||
dateRange = td.dateRange && td.dateRange.length === 1 ? [td.dateRange[0], td.dateRange[0]] : td.dateRange; | ||
} | ||
return { | ||
...td, | ||
dateRange | ||
}; | ||
}).concat(regularToTimeDimension) | ||
}; | ||
@@ -176,0 +195,0 @@ }; |
@@ -5,3 +5,3 @@ { | ||
"author": "Statsbot, Inc.", | ||
"version": "0.6.1", | ||
"version": "0.6.2", | ||
"engines": { | ||
@@ -15,2 +15,3 @@ "node": ">=8.11.1" | ||
"dependencies": { | ||
"chrono-node": "^1.3.11", | ||
"joi": "^14.0.6", | ||
@@ -28,3 +29,3 @@ "jsonwebtoken": "^8.3.0", | ||
"license": "Apache-2.0", | ||
"gitHead": "94818eb1b00f5308da9bf189e8d612d2e0b7627b" | ||
"gitHead": "e8dde2dafb7c2ecc9a76f2fa92ea0b1b9ba7381d" | ||
} |
27988
7
386
5
+ Addedchrono-node@^1.3.11
+ Addedchrono-node@1.4.9(transitive)
+ Addeddayjs@1.11.13(transitive)