Optimize CSV download

This commit is contained in:
Zaid Abdulla committed 2018-12-26 00:22:07 -08:00
1 parent de759b8d93
commit 75a5a42296
3 files changed
+20 -26

No files matched your search

+8 -16
View File
@@ -139,7 +139,7 @@ for (let [resource, flags] of Object.entries(resources)) {
// CSV download
router.get(`/${resource}.csv`, async (ctx, next) => {
let options = {};
let options = { projection: {} };
let filter = true;
if (ctx.request.query.filter)
filter = expression.parse(ctx.request.query.filter);
@@ -154,8 +154,7 @@ for (let [resource, flags] of Object.entries(resources)) {
filter: ctx.request.query.filter,
limit: options.limit,
skip: options.skip,
sort: options.sort,
projection: options.projection
sort: options.sort
};
if (!ctx.state.authorizer.hasAccess(resource, 2)) {
@@ -165,12 +164,16 @@ for (let [resource, flags] of Object.entries(resources)) {
const columns = JSON.parse(ctx.request.query.columns);
const now = Date.now();
for (let [k, v] of Object.entries(columns))
columns[k] = expression.evaluate(
for (let [k, v] of Object.entries(columns)) {
const e = expression.evaluate(
expression.parse(v),
null,
now
);
columns[k] = e;
for (let p of expression.extractParams(e)) options.projection[p] = 1;
}
// Exclude temporary tasks and faults
if (resource === "tasks" || resource === "faults")
@@ -392,17 +395,6 @@ router.put("/files/:id", async (ctx, next) => {
log.metadata = metadata;
logger.accessInfo(log);
db.putAudit({
username: ctx.state.user.username,
action: "put",
objectType: resource,
objectId: id
}).catch(err => {
setTimeout(() => {
throw err;
}, 0);
});
ctx.body = "";
});