pesto-students/batch-11-relayer

View on GitHub
server/controller/ActionPerformer.js

Summary

Maintainability
A
0 mins
Test Coverage
/* eslint-disable no-underscore-dangle */
import eventEmitter from '../lib/eventsLib';
import slackActionPerformer from '../thirdparty/controller/SlackActionPerformer';

const ActionPerformer = async (relay, triggerEvent) => {
  const actionsToPerform = relay.participantApps.slice(1);

  for (const action of actionsToPerform) {
    if (action.eventType === 'Action') {
      const correspondingActionPerformer = `${action.appName.toLowerCase()}ActionPerformer`;

      eventEmitter.emit(correspondingActionPerformer, relay._id, action, triggerEvent);
    }
  }
};

const exports = {
  ActionPerformer,
  slackActionPerformer,
};

export default exports;