30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
import pollUntilComplete from '~/lib/utils/poll_until_complete';
|
|
import { STATUS_NOT_FOUND } from '../../constants';
|
|
import * as types from './mutation_types';
|
|
import { parseCodeclimateMetrics } from './utils/codequality_parser';
|
|
|
|
export const setPaths = ({ commit }, paths) => commit(types.SET_PATHS, paths);
|
|
|
|
export const fetchReports = ({ state, dispatch, commit }) => {
|
|
commit(types.REQUEST_REPORTS);
|
|
|
|
return pollUntilComplete(state.reportsPath)
|
|
.then(({ data }) => {
|
|
if (data.status === STATUS_NOT_FOUND) {
|
|
return dispatch('receiveReportsError', data);
|
|
}
|
|
return dispatch('receiveReportsSuccess', {
|
|
newIssues: parseCodeclimateMetrics(data.new_errors, state.headBlobPath),
|
|
resolvedIssues: parseCodeclimateMetrics(data.resolved_errors, state.baseBlobPath),
|
|
});
|
|
})
|
|
.catch((error) => dispatch('receiveReportsError', error));
|
|
};
|
|
|
|
export const receiveReportsSuccess = ({ commit }, data) => {
|
|
commit(types.RECEIVE_REPORTS_SUCCESS, data);
|
|
};
|
|
|
|
export const receiveReportsError = ({ commit }, error) => {
|
|
commit(types.RECEIVE_REPORTS_ERROR, error);
|
|
};
|