Welcome to mirror list, hosted at ThFree Co, Russian Federation.

resolvers.js « graphql « environments « javascripts « assets « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 8322b806370685e8810347f4b3e560fae9b55739 (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
import axios from '~/lib/utils/axios_utils';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';

const mapNestedEnvironment = (env) => ({
  ...convertObjectPropsToCamelCase(env, { deep: true }),
  __typename: 'NestedLocalEnvironment',
});
const mapEnvironment = (env) => ({
  ...convertObjectPropsToCamelCase(env),
  __typename: 'LocalEnvironment',
});

export const resolvers = (endpoint) => ({
  Query: {
    environmentApp() {
      return axios.get(endpoint, { params: { nested: true } }).then((res) => ({
        availableCount: res.data.available_count,
        environments: res.data.environments.map(mapNestedEnvironment),
        reviewApp: {
          ...convertObjectPropsToCamelCase(res.data.review_app),
          __typename: 'ReviewApp',
        },
        stoppedCount: res.data.stopped_count,
        __typename: 'LocalEnvironmentApp',
      }));
    },
    folder(_, { environment: { folderPath } }) {
      return axios.get(folderPath, { params: { per_page: 3 } }).then((res) => ({
        availableCount: res.data.available_count,
        environments: res.data.environments.map(mapEnvironment),
        stoppedCount: res.data.stopped_count,
        __typename: 'LocalEnvironmentFolder',
      }));
    },
  },
  Mutations: {
    stopEnvironment(_, { environment: { stopPath } }) {
      return axios.post(stopPath);
    },
    deleteEnvironment(_, { environment: { deletePath } }) {
      return axios.delete(deletePath);
    },
    rollbackEnvironment(_, { environment: { retryUrl } }) {
      return axios.post(retryUrl);
    },
    cancelAutoStop(_, { environment: { autoStopPath } }) {
      return axios.post(autoStopPath);
    },
  },
});