HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/buyercall/assets/vue/widgets/CommWidget/store/root/actions.js
import {
  ROOT_ACTION_SET_WIDGET_VISIBILITY,
  ROOT_MUTATION_SET_WIDGET_VISIBILITY,
  ROOT_ACTION_GET_WIDGET_CONFIGURATIONS,
  ROOT_MUTATION_SET_WIDGET_CONFIGURATION_LOADING,
  ROOT_MUTATION_SET_ERROR,
  CALL_MUTATION_SET_CONFIG,
  CALL_SELECT,
  ROOT_ACTION_SET_SCREEN_INFO,
  ROOT_MUTATION_SET_SCREEN_INFO,
  ROOT_ACTION_RESET_STATE,
  CALL_MUTATION_RESET,
  SCREEN_WELCOME,
  MESSAGE_SELECT,
  MESSAGE_MUTATION_SET_CONFIG,
  MESSAGE_MUTATION_RESET,
  EMAIL_MUTATION_SET_CONFIG,
  EMAIL_SELECT,
  CHAT_MUTATION_SET_CONFIG,
  CHAT_SELECT,
  EMAIL_MUTATION_RESET,
  CHAT_MUTATION_RESET,
  ROOT_MUTATION_SET_CONFIG,
  ROOT_MUTATION_SET_WIDGET_ID,
  ROOT_ACTION_SET_WIDGET_ID,
  ROOT_MUTATION_SET_WINDOW_WIDTH,
  ROOT_ACTION_SET_WINDOW_WIDTH,
  ROOT_MUTATION_SELECT_BOTTOM_TAB,
  ROOT_ACTION_SELECT_BOTTOM_TAB,
  ROOT_ACTION_GET_AGENTS,
  ROOT_MUTATION_SET_AGENTS,
  ROOT_MUTATION_SET_RASA_INITIAL_MESSAGES,
  ROOT_ACTION_GET_RASA_INITIAL_MESSAGES,
} from '../../constants';

import ExternalWidgetService from '../../../../service/externalWidgetService';
import OmniWidgetService from '../../../../service/omniChannelService';
import SourceService from '../../../../service/source';
import RasaService from '../../../../service/rasaService';
import _ from 'lodash';

export default {
  async [ROOT_ACTION_GET_RASA_INITIAL_MESSAGES]({ commit }, payload) {
    const { data } = await RasaService.getRasaResponse(payload);
    commit(ROOT_MUTATION_SET_RASA_INITIAL_MESSAGES, data);
  },
  async [ROOT_ACTION_GET_AGENTS]({ commit }) {
    const {
      data: { data, message, success },
    } = await SourceService.getAgents();
    if (success) {
      commit(ROOT_MUTATION_SET_AGENTS, data);
    }
  },
  [ROOT_ACTION_SELECT_BOTTOM_TAB]({ commit }, payload) {
    commit(ROOT_MUTATION_SELECT_BOTTOM_TAB, payload);
  },
  [ROOT_ACTION_SET_WINDOW_WIDTH]({ commit }, payload) {
    commit(ROOT_MUTATION_SET_WINDOW_WIDTH, payload);
  },
  // Change widget visibility
  [ROOT_ACTION_SET_WIDGET_VISIBILITY]({ commit }, payload) {
    commit(ROOT_MUTATION_SET_WIDGET_VISIBILITY, payload);
  },
  [ROOT_ACTION_SET_WIDGET_ID]({ commit }, payload) {
    commit(ROOT_MUTATION_SET_WIDGET_ID, payload);
  },
  [ROOT_ACTION_SET_SCREEN_INFO]({ commit, dispatch }, payload) {
    if (payload.name === SCREEN_WELCOME) {
      dispatch(ROOT_ACTION_RESET_STATE);
    } else {
      commit(ROOT_MUTATION_SET_SCREEN_INFO, payload);
    }
  },
  async [ROOT_ACTION_GET_WIDGET_CONFIGURATIONS](
    { commit, rootGetters },
    payload,
  ) {
    commit(ROOT_MUTATION_SET_WIDGET_CONFIGURATION_LOADING, true);
    const {
      data: { data, message, success },
    } = await OmniWidgetService.getOmniWidget(payload);
    if (success) {
      commit(ROOT_MUTATION_SET_CONFIG, { ..._.omit(data, 'options') });
      _.forEach(data.channels, option => {
        switch (option.type) {
          case 'CALL':
            commit(
              `call/${CALL_MUTATION_SET_CONFIG}`,
              {
                ...rootGetters[`call/${CALL_SELECT}`],
                ..._.omit(option, 'type'),
              },
              {
                root: true,
              },
            );
            break;
          case 'TEXT_MESSAGE':
            commit(
              `message/${MESSAGE_MUTATION_SET_CONFIG}`,
              {
                ...rootGetters[`message/${MESSAGE_SELECT}`],
                ..._.omit(option, 'type'),
              },
              {
                root: true,
              },
            );
            break;
          case 'EMAIL':
            commit(
              `email/${EMAIL_MUTATION_SET_CONFIG}`,
              {
                ...rootGetters[`email/${EMAIL_SELECT}`],
                ..._.omit(option, 'type'),
              },
              {
                root: true,
              },
            );
            break;
          case 'CHAT':
            commit(
              `chat/${CHAT_MUTATION_SET_CONFIG}`,
              {
                ...rootGetters[`chat/${CHAT_SELECT}`],
                ..._.omit(option, 'type'),
              },
              {
                root: true,
              },
            );
            break;
        }
      });
    } else {
      commit(ROOT_MUTATION_SET_ERROR, message);
    }
  },
  [ROOT_ACTION_RESET_STATE]({ commit, dispatch }) {
    commit(`call/${CALL_MUTATION_RESET}`, null, {
      root: true,
    });
    commit(`message/${MESSAGE_MUTATION_RESET}`, null, {
      root: true,
    });
    // commit(`chat/${CHAT_MUTATION_RESET}`, null, {
    //   root: true,
    // });
    commit(`email/${EMAIL_MUTATION_RESET}`, null, {
      root: true,
    });
    commit(ROOT_MUTATION_SET_SCREEN_INFO, {
      name: SCREEN_WELCOME,
      prev: '',
    });
  },
};