Changeset View
Changeset View
Standalone View
Standalone View
lib/app/base-chips/calculated-field-types/aggregate.js
"use strict"; | |||||
const Promise = require("bluebird"); | |||||
module.exports = function(app) { | module.exports = function(app) { | ||||
return { | return { | ||||
name: "aggregate", | name: "aggregate", | ||||
calculate: function(context, params, item, db_document) { | calculate(context, params, item, db_document) { | ||||
let stages = params.stages; | let stages = params.stages; | ||||
if (params.stages instanceof Function) { | if (params.stages instanceof Function) { | ||||
stages = params.stages(context, params, item, db_document); | stages = params.stages(context, params, item, db_document); | ||||
} | } | ||||
return app.Datastore.aggregate(params.collection, stages).then( | return app.Datastore.aggregate(params.collection, stages).then( | ||||
function(documents) { | documents => (documents.length ? documents[0].result : null) | ||||
if (documents.length) { | |||||
return documents[0].result; | |||||
} else { | |||||
return null; | |||||
} | |||||
} | |||||
); | ); | ||||
}, | }, | ||||
}; | }; | ||||
}; | }; |