debian-mirror-gitlab/app/assets/javascripts/packages/details/store/actions.js
2021-09-04 01:27:46 +05:30

59 lines
1.6 KiB
JavaScript

import Api from '~/api';
import createFlash from '~/flash';
import {
DELETE_PACKAGE_ERROR_MESSAGE,
DELETE_PACKAGE_FILE_ERROR_MESSAGE,
DELETE_PACKAGE_FILE_SUCCESS_MESSAGE,
} from '~/packages/shared/constants';
import { FETCH_PACKAGE_VERSIONS_ERROR } from '../constants';
import * as types from './mutation_types';
export const fetchPackageVersions = ({ commit, state }) => {
commit(types.SET_LOADING, true);
const { project_id, id } = state.packageEntity;
return Api.projectPackage(project_id, id)
.then(({ data }) => {
if (data.versions) {
commit(types.SET_PACKAGE_VERSIONS, data.versions.reverse());
}
})
.catch(() => {
createFlash({ message: FETCH_PACKAGE_VERSIONS_ERROR, type: 'warning' });
})
.finally(() => {
commit(types.SET_LOADING, false);
});
};
export const deletePackage = ({
state: {
packageEntity: { project_id, id },
},
}) => {
return Api.deleteProjectPackage(project_id, id).catch(() => {
createFlash({ message: DELETE_PACKAGE_ERROR_MESSAGE, type: 'warning' });
});
};
export const deletePackageFile = (
{
state: {
packageEntity: { project_id, id },
packageFiles,
},
commit,
},
fileId,
) => {
return Api.deleteProjectPackageFile(project_id, id, fileId)
.then(() => {
const filtered = packageFiles.filter((f) => f.id !== fileId);
commit(types.UPDATE_PACKAGE_FILES, filtered);
createFlash({ message: DELETE_PACKAGE_FILE_SUCCESS_MESSAGE, type: 'success' });
})
.catch(() => {
createFlash({ message: DELETE_PACKAGE_FILE_ERROR_MESSAGE, type: 'warning' });
});
};