UNPKG

@reactivehub/cli

Version:
98 lines (83 loc) 2.83 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _objects = require('../../libs/objects'); var _objects2 = _interopRequireDefault(_objects); var _api = require('../../services/api'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const emailHolderQuestion = model => ({ type: 'autocomplete', name: 'email_address', message: 'Which field in the event model holds the customer email?', source: (() => { var _ref = (0, _asyncToGenerator3.default)(function* (answersSoFar, input = 'mail') { const { suggestions, otherFields } = _objects2.default.getKeySuggestions(model, input); const sourceModel = [].concat(suggestions || [], otherFields || []); return sourceModel; }); return function source(_x) { return _ref.apply(this, arguments); }; })() }); const questions = eventModel => [emailHolderQuestion(eventModel)]; const memberFields = { listId: 'the-mailchimp-list-id', merge_fields: {}, interests: {}, language: 'en', vip: false, location: { latitude: '', longitude: '' }, tags: '' }; const deploy = (action, eventInfo, serviceAction) => { const { email, status, listId, tags } = action; const payload = { email, status, listId }; if (tags !== '') payload.tags = tags; // TODO CALL DEPLOY API / TEST IF TAG IS EMPTY SET NULL return (0, _api.sendAction)(eventInfo, (0, _extends3.default)({ serviceAction }, action)); }; exports.default = { name: 'LIST', actions: [{ name: 'add-member', processor: 'ADD_LIST_MEMBER', buildTemplate: ({ email_address: email }) => (0, _extends3.default)({ email: `{${email}}`, status: 'subscribed' }, memberFields), deploy: (action, eventInfo) => deploy(action, eventInfo, 'ADD_LIST_MEMBER'), questions }, { name: 'edit-member', processor: 'EDIT_LIST_MEMBER', buildTemplate: ({ email_address: email }) => (0, _extends3.default)({ email_address: `{${email}}`, status: '' }, memberFields), deploy: (action, eventInfo) => deploy(action, eventInfo, 'EDIT_LIST_MEMBER'), questions }, { name: 'delete-member', processor: 'DELETE_LIST_MEMBER', buildTemplate: ({ email_address: email }) => ({ email: `{${email}}`, listId: 'type-the-mailchimp-list-id' }), deploy: (action, eventInfo) => (0, _api.sendAction)(eventInfo, (0, _extends3.default)({ serviceAction: 'DELETE_LIST_MEMBER' }, action)), questions }] }; //# sourceMappingURL=list.js.map