import { __ } from '~/locale'; import Api from '~/api'; import * as types from './mutation_types'; export const requestBranches = ({ commit }) => commit(types.REQUEST_BRANCHES); export const receiveBranchesError = ({ commit, dispatch }, { search }) => { dispatch( 'setErrorMessage', { text: __('Error loading branches.'), action: payload => dispatch('fetchBranches', payload).then(() => dispatch('setErrorMessage', null, { root: true }), ), actionText: __('Please try again'), actionPayload: { search }, }, { root: true }, ); commit(types.RECEIVE_BRANCHES_ERROR); }; export const receiveBranchesSuccess = ({ commit }, data) => commit(types.RECEIVE_BRANCHES_SUCCESS, data); export const fetchBranches = ({ dispatch, rootGetters }, { search = '' }) => { dispatch('requestBranches'); dispatch('resetBranches'); return Api.branches(rootGetters.currentProject.id, search, { sort: 'updated_desc' }) .then(({ data }) => dispatch('receiveBranchesSuccess', data)) .catch(() => dispatch('receiveBranchesError', { search })); }; export const resetBranches = ({ commit }) => commit(types.RESET_BRANCHES);