@reactivehub/cli
Version:
75 lines (54 loc) • 2.35 kB
JavaScript
;
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