summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/packages_and_registries/infrastructure_registry/details/store/actions.js
blob: 62c4f96eff7579f2a9921192a8535f866a5e6f51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import Api from '~/api';
import { createAlert, VARIANT_SUCCESS, VARIANT_WARNING } from '~/alert';
import {
  DELETE_PACKAGE_ERROR_MESSAGE,
  DELETE_PACKAGE_FILE_ERROR_MESSAGE,
  DELETE_PACKAGE_FILE_SUCCESS_MESSAGE,
} from '~/packages_and_registries/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(() => {
      createAlert({ message: FETCH_PACKAGE_VERSIONS_ERROR, variant: VARIANT_WARNING });
    })
    .finally(() => {
      commit(types.SET_LOADING, false);
    });
};

export const deletePackage = ({
  state: {
    packageEntity: { project_id, id },
  },
}) => {
  return Api.deleteProjectPackage(project_id, id).catch(() => {
    createAlert({ message: DELETE_PACKAGE_ERROR_MESSAGE, variant: VARIANT_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);
      createAlert({ message: DELETE_PACKAGE_FILE_SUCCESS_MESSAGE, variant: VARIANT_SUCCESS });
    })
    .catch(() => {
      createAlert({ message: DELETE_PACKAGE_FILE_ERROR_MESSAGE, variant: VARIANT_WARNING });
    });
};