mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-03 20:48:07 +00:00 
			
		
		
		
	Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import * as MutationHelpers from 'shared/helpers/vuex/mutationHelpers';
 | 
						|
import * as types from '../mutation-types';
 | 
						|
import webHookAPI from '../../api/webhooks';
 | 
						|
 | 
						|
const state = {
 | 
						|
  records: [],
 | 
						|
  uiFlags: {
 | 
						|
    fetchingList: false,
 | 
						|
    creatingItem: false,
 | 
						|
    deletingItem: false,
 | 
						|
    updatingItem: false,
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const getters = {
 | 
						|
  getWebhooks(_state) {
 | 
						|
    return _state.records.sort((w1, w2) => w1.id - w2.id);
 | 
						|
  },
 | 
						|
  getUIFlags(_state) {
 | 
						|
    return _state.uiFlags;
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const actions = {
 | 
						|
  async get({ commit }) {
 | 
						|
    commit(types.default.SET_WEBHOOK_UI_FLAG, { fetchingList: true });
 | 
						|
    try {
 | 
						|
      const response = await webHookAPI.get();
 | 
						|
      commit(types.default.SET_WEBHOOK, response.data.payload.webhooks);
 | 
						|
      commit(types.default.SET_WEBHOOK_UI_FLAG, { fetchingList: false });
 | 
						|
    } catch (error) {
 | 
						|
      commit(types.default.SET_WEBHOOK_UI_FLAG, { fetchingList: false });
 | 
						|
    }
 | 
						|
  },
 | 
						|
 | 
						|
  async create({ commit }, params) {
 | 
						|
    commit(types.default.SET_WEBHOOK_UI_FLAG, { creatingItem: true });
 | 
						|
    try {
 | 
						|
      const response = await webHookAPI.create(params);
 | 
						|
      const {
 | 
						|
        payload: { webhook },
 | 
						|
      } = response.data;
 | 
						|
      commit(types.default.ADD_WEBHOOK, webhook);
 | 
						|
      commit(types.default.SET_WEBHOOK_UI_FLAG, { creatingItem: false });
 | 
						|
    } catch (error) {
 | 
						|
      commit(types.default.SET_WEBHOOK_UI_FLAG, { creatingItem: false });
 | 
						|
      throw error;
 | 
						|
    }
 | 
						|
  },
 | 
						|
 | 
						|
  update: async ({ commit }, { id, ...updateObj }) => {
 | 
						|
    commit(types.default.SET_WEBHOOK_UI_FLAG, { updatingItem: true });
 | 
						|
    try {
 | 
						|
      const response = await webHookAPI.update(id, updateObj);
 | 
						|
      commit(types.default.UPDATE_WEBHOOK, response.data.payload.webhook);
 | 
						|
    } catch (error) {
 | 
						|
      throw new Error(error);
 | 
						|
    } finally {
 | 
						|
      commit(types.default.SET_WEBHOOK_UI_FLAG, { updatingItem: false });
 | 
						|
    }
 | 
						|
  },
 | 
						|
 | 
						|
  async delete({ commit }, id) {
 | 
						|
    commit(types.default.SET_WEBHOOK_UI_FLAG, { deletingItem: true });
 | 
						|
    try {
 | 
						|
      await webHookAPI.delete(id);
 | 
						|
      commit(types.default.DELETE_WEBHOOK, id);
 | 
						|
      commit(types.default.SET_WEBHOOK_UI_FLAG, { deletingItem: false });
 | 
						|
    } catch (error) {
 | 
						|
      commit(types.default.SET_WEBHOOK_UI_FLAG, { deletingItem: false });
 | 
						|
      throw error;
 | 
						|
    }
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const mutations = {
 | 
						|
  [types.default.SET_WEBHOOK_UI_FLAG](_state, data) {
 | 
						|
    _state.uiFlags = {
 | 
						|
      ..._state.uiFlags,
 | 
						|
      ...data,
 | 
						|
    };
 | 
						|
  },
 | 
						|
  [types.default.SET_WEBHOOK]: MutationHelpers.set,
 | 
						|
  [types.default.ADD_WEBHOOK]: MutationHelpers.create,
 | 
						|
  [types.default.DELETE_WEBHOOK]: MutationHelpers.destroy,
 | 
						|
  [types.default.UPDATE_WEBHOOK]: MutationHelpers.update,
 | 
						|
};
 | 
						|
 | 
						|
export default {
 | 
						|
  namespaced: true,
 | 
						|
  state,
 | 
						|
  getters,
 | 
						|
  actions,
 | 
						|
  mutations,
 | 
						|
};
 |