UNPKG

forest-express

Version:

Official package for all Forest Express Lianas

37 lines (36 loc) 1.65 kB
"use strict"; var _require = require('@forestadmin/context'), inject = _require.inject; var _ = require('lodash'); var IntegrationInformationsGetter = require('../../services/integration-informations-getter'); var MixpanelEventsGetter = require('./services/mixpanel-events-getter'); var serializeMixpanelEvents = require('./serializers/mixpanel-events'); var auth = require('../../services/auth'); var path = require('../../services/path'); module.exports = function Routes(app, model, Implementation, options) { var _this = this; var _inject = inject(), modelsManager = _inject.modelsManager; var modelName = Implementation.getModelName(model); var integrationInfo; if (options.integrations && options.integrations.mixpanel) { integrationInfo = new IntegrationInformationsGetter(modelName, Implementation, options.integrations.mixpanel).perform(); } if (integrationInfo) { var integrationValues = integrationInfo.split('.'); integrationInfo = { collection: modelsManager.getModels()[integrationValues[0]], field: integrationValues[1] }; } this.mixpanelEvents = function (request, response, next) { new MixpanelEventsGetter(Implementation, _.extend(request.query, request.params), options, integrationInfo).perform().then(function (events) { return serializeMixpanelEvents(events, modelName, {}, options); }).then(function (events) { response.send(events); })["catch"](next); }; this.perform = function () { app.get(path.generate("".concat(modelName, "/:recordId/relationships/mixpanel_last_events"), options), auth.ensureAuthenticated, _this.mixpanelEvents); }; };