summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/logs/stores/mutations.js
blob: 5e1c794c3a99632eedcc8072e344ee5f7e450623 (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import * as types from './mutation_types';
import { convertToFixedRange } from '~/lib/utils/datetime_range';

const mapLine = ({ timestamp, pod, message }) => ({
  timestamp,
  pod,
  message,
});

export default {
  // Search Data
  [types.SET_SEARCH](state, searchQuery) {
    state.search = searchQuery;
  },

  // Time Range Data
  [types.SET_TIME_RANGE](state, timeRange) {
    state.timeRange.selected = timeRange;
    state.timeRange.current = convertToFixedRange(timeRange);
  },
  [types.SHOW_TIME_RANGE_INVALID_WARNING](state) {
    state.timeRange.invalidWarning = true;
  },
  [types.HIDE_TIME_RANGE_INVALID_WARNING](state) {
    state.timeRange.invalidWarning = false;
  },

  // Environments Data
  [types.SET_PROJECT_ENVIRONMENT](state, environmentName) {
    state.environments.current = environmentName;

    // Clear current pod options
    state.pods.current = null;
    state.pods.options = [];
  },
  [types.REQUEST_ENVIRONMENTS_DATA](state) {
    state.environments.options = [];
    state.environments.isLoading = true;
  },
  [types.RECEIVE_ENVIRONMENTS_DATA_SUCCESS](state, environmentOptions) {
    state.environments.options = environmentOptions;
    state.environments.isLoading = false;
  },
  [types.RECEIVE_ENVIRONMENTS_DATA_ERROR](state) {
    state.environments.options = [];
    state.environments.isLoading = false;
    state.environments.fetchError = true;
  },
  [types.HIDE_REQUEST_ENVIRONMENTS_ERROR](state) {
    state.environments.fetchError = false;
  },

  // Logs data
  [types.REQUEST_LOGS_DATA](state) {
    state.timeRange.current = convertToFixedRange(state.timeRange.selected);

    state.logs.lines = [];
    state.logs.isLoading = true;

    // start pagination from the beginning
    state.logs.cursor = null;
    state.logs.isComplete = false;
  },
  [types.RECEIVE_LOGS_DATA_SUCCESS](state, { logs = [], cursor }) {
    state.logs.lines = logs.map(mapLine);
    state.logs.isLoading = false;
    state.logs.cursor = cursor;

    if (!cursor) {
      state.logs.isComplete = true;
    }
  },
  [types.RECEIVE_LOGS_DATA_ERROR](state) {
    state.logs.lines = [];
    state.logs.isLoading = false;
    state.logs.fetchError = true;
  },

  [types.REQUEST_LOGS_DATA_PREPEND](state) {
    state.logs.isLoading = true;
  },
  [types.RECEIVE_LOGS_DATA_PREPEND_SUCCESS](state, { logs = [], cursor }) {
    const lines = logs.map(mapLine);
    state.logs.lines = lines.concat(state.logs.lines);
    state.logs.isLoading = false;
    state.logs.cursor = cursor;

    if (!cursor) {
      state.logs.isComplete = true;
    }
  },
  [types.RECEIVE_LOGS_DATA_PREPEND_ERROR](state) {
    state.logs.isLoading = false;
    state.logs.fetchError = true;
  },
  [types.HIDE_REQUEST_LOGS_ERROR](state) {
    state.logs.fetchError = false;
  },

  // Pods data
  [types.SET_CURRENT_POD_NAME](state, podName) {
    state.pods.current = podName;
  },
  [types.RECEIVE_PODS_DATA_SUCCESS](state, podOptions) {
    state.pods.options = podOptions;
  },
  [types.RECEIVE_PODS_DATA_ERROR](state) {
    state.pods.options = [];
  },
};