UNPKG

@reactivehub/cli

Version:
75 lines (54 loc) 2.35 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk); var _messages = require('../messages'); var _messages2 = _interopRequireDefault(_messages); var _filter = require('../core/filter'); var _filter2 = _interopRequireDefault(_filter); var _event = require('../core/event'); var _event2 = _interopRequireDefault(_event); var _yaml = require('./yaml'); var _yaml2 = _interopRequireDefault(_yaml); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const { getFilter } = _filter2.default; const folder = 'events'; const actionExists = (eventId, filterId, actionId) => { const { actions = [] } = getFilter(eventId, filterId) || {}; return actions && actions.filter(({ id }) => id === actionId).length > 0; }; const createAction = params => { const { eventId, filterId, id: actionId } = params; const actionPayload = params; delete actionPayload.eventId; delete actionPayload.filterId; const eventPayload = _event2.default.loadEvent(folder, eventId); const filterConfig = eventPayload.filters.find(({ id }) => id === filterId); if (!filterConfig.actions) filterConfig.actions = []; const foundAction = filterConfig.actions.find(action => action.id === actionId); if (foundAction) { filterConfig.actions = filterConfig.actions.map(action => { if (action.id === actionId) return actionPayload; return action; }); } else { filterConfig.actions.push(actionPayload); } eventPayload.filters = eventPayload.filters.map(filterMap => { if (filterMap.id === filterId) return filterConfig; return filterMap; }); const created = _yaml2.default.create(folder, eventId, eventPayload); if (created) { _messages2.default.success(`Action ${_chalk2.default.blue.bold(actionId)} on event ${_chalk2.default.blue.bold(`${eventId}:${filterId}`)} successfully created!`); _messages2.default.info("Check the action template at the YAML file and replace it's properties with the event model parameters (wildcards allowed), check the documentation for more info https://docs.reactivehub.io/guide/events/actions#wildcards "); } return created; }; exports.default = { createAction, actionExists }; //# sourceMappingURL=actions.js.map