UNPKG

structure-event-collector

Version:
149 lines (115 loc) 2.98 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _assign = require('babel-runtime/core-js/object/assign'); var _assign2 = _interopRequireDefault(_assign); var _event = require('../models/event'); var _event2 = _interopRequireDefault(_event); var _structureRootController = require('structure-root-controller'); var _structureRootController2 = _interopRequireDefault(_structureRootController); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } let mixpanel = null; let Mixpanel = null; if (process.env.MIXPANEL_TOKEN) { Mixpanel = require('mixpanel'); mixpanel = Mixpanel.init(process.env.MIXPANEL_TOKEN); } /** * EventsController Class * * @public * @class EventsController */ class EventsController extends _structureRootController2.default { /** * EventsController constructor * * @public * @constructor * @param {Object} options - Options */ constructor(options = {}) { super((0, _assign2.default)({}, { name: 'events' }, options)); } /** * Create new event * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ create(req, res) { const event = new _event2.default(); const time = new Date().toISOString(); let pkg = (0, _assign2.default)({}, req.body, { ip: req.ip, origin: req.get('Origin') ? req.get('Origin').replace(/^https?:\/\//, '') : '', referrer: req.get('Referrer'), time, useragent: req.get('User-Agent') }); if (mixpanel) { let data = req.body.data || null; let label = (0, _assign2.default)({}, req.body).label; if (!data) { data = (0, _assign2.default)({}, req.body); delete data.label; } try { mixpanel.track(label, data); } catch (e) { console.error(e); } } return event.create(pkg); } /** * Delete an event by id * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ deleteById(req, res) { var event = new _event2.default(); return event.deleteById(req.params.id); } /** * Get event by id * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ getById(req, res) { const event = new _event2.default(); return event.getById(req.params.id); } /** * Get all events * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ getAll(req, res) { const event = new _event2.default(); return event.getAll(); } /** * Update a event * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ updateById(req, res) { const event = new _event2.default(); return event.updateById(req.params.id, req.body); } } exports.default = EventsController; //# sourceMappingURL=event.js.map