assets/js/store/modules/activity.js   A
last analyzed

Complexity

Total Complexity 13
Complexity/F 1.44

Size

Lines of Code 58
Function Count 9

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 36
c 0
b 0
f 0
dl 0
loc 58
rs 10
wmc 13
mnd 4
bc 4
fnc 9
bpm 0.4444
cpm 1.4443
noi 2
1
import activityApi from '../../api/activity'
2
3
export default {
4
    namespaced: true,
5
    state : {
6
        activity: [],
7
    },
8
    getters: {
9
        'isInProgress':  (state) => (provider) => {
10
            return state.activity.indexOf(provider) > -1;
11
        },
12
        'count': (state) => {
13
            return state.activity.length;
14
        }
15
    },
16
    actions: {
17
        'load': ({commit}) => {
18
            activityApi.get().then(function (response) {
19
                commit('setActivity', response.data);
20
21
                // Mercure
22
                if(response.headers.link) {
23
                    const hubUrl = response.headers.link.match(/<([^>]+)>;\s+rel=(?:mercure|"[^"]*mercure[^"]*")/)[1];
24
                    const h = new URL(hubUrl);
0 ignored issues
show
Bug introduced by
The variable URL seems to be never declared. If this is a global, consider adding a /** global: URL */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
25
                    h.searchParams.append('topic', 'http://twity.io/p/{provider}/{package}')
26
                    const es = new EventSource(h, { withCredentials: true});
0 ignored issues
show
Bug introduced by
The variable EventSource seems to be never declared. If this is a global, consider adding a /** global: EventSource */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
27
                    es.onmessage = e => {
28
                        let data = JSON.parse(e.data);
29
30
                        if(data.updateInProgress === true) {
31
                            commit('addProvider', data.provider);
32
                        } else {
33
                            commit('removeProvider', data.provider);
34
                        }
35
                    }
36
                }
37
            });
38
        }
39
    },
40
41
    mutations: {
42
        'setActivity': (state, value) => {
43
            state.activity = value;
44
        },
45
        'addProvider': (state, value) => {
46
            let index = state.activity.indexOf(value);
47
            if (index === -1) {
48
                state.activity.push(value);
49
            }
50
        },
51
        'removeProvider': (state, value) => {
52
            let index = state.activity.indexOf(value);
53
            if (index > -1) {
54
                state.activity.splice(index, 1);
55
            }
56
        }
57
    }
58
}
59