Skip to content
This repository was archived by the owner on May 7, 2021. It is now read-only.

Commit e37855f

Browse files
committed
Handle exceptions
1 parent 98bdef8 commit e37855f

File tree

8 files changed

+37
-22
lines changed

8 files changed

+37
-22
lines changed

src/router.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const router = new Router({
9898
router.beforeEach(async (to, from, next) => {
9999
store.commit('criticalError/clearError');
100100
if (to.matched.length === 0) {
101-
store.commit('criticalError/createError', {
101+
store.dispatch('criticalError/createError', {
102102
response: {
103103
status: 404,
104104
data: {
@@ -116,7 +116,7 @@ router.beforeEach(async (to, from, next) => {
116116
}
117117

118118
if (to.matched.some(record => record.meta.requiresAdmin) && !store.getters['user/isAdmin']) {
119-
store.commit('criticalError/createError', {
119+
store.dispatch('criticalError/createError', {
120120
response: {
121121
status: 404,
122122
data: {

src/store/modules/achievement/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ export default {
2929
},
3030
/* eslint-enable no-param-reassign */
3131
actions: {
32-
async getAchievements({ commit }, sessionID) {
32+
async getAchievements({ commit, dispatch }, sessionID) {
3333
try {
3434
commit('setAchievements', await achievementClient.getAchievements(sessionID));
3535
} catch (e) {
36-
commit('criticalError/createError', e, { root: true });
36+
dispatch('criticalError/createError', e, { root: true });
3737
}
3838
},
3939
async saveAchievement({ commit, dispatch }, { sessionID, achievement, image }) {
Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { exception } from 'vue-analytics';
2+
13
export default {
24
namespaced: true,
35
state: {
@@ -6,14 +8,9 @@ export default {
68
},
79
/* eslint-disable no-param-reassign */
810
mutations: {
9-
createError(state, error) {
10-
if (!error.response) {
11-
state.number = '';
12-
state.message = 'Connection refused';
13-
return;
14-
}
15-
state.number = error.response.status;
16-
state.message = error.response.data.message || error.response.statusText;
11+
setError(state, { number, message }) {
12+
state.number = number;
13+
state.message = message;
1714
},
1815
clearError(state) {
1916
state.number = null;
@@ -26,4 +23,22 @@ export default {
2623
return state.number !== null || state.message !== null;
2724
},
2825
},
26+
actions: {
27+
createError({ commit }, error) {
28+
if (!error.response) {
29+
const number = '';
30+
const message = 'Connection refused';
31+
exception(message);
32+
commit('setError', { number, message });
33+
return;
34+
}
35+
36+
const number = error.response.status;
37+
const message = error.response.data.message || error.response.statusText;
38+
if (number >= 500 && number < 600) {
39+
exception(error);
40+
}
41+
commit('setError', { number, message });
42+
},
43+
},
2944
};

src/store/modules/invitation/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ export default {
2020
},
2121
/* eslint-enable no-param-reassign */
2222
actions: {
23-
async listInvitations({ commit }, sessionID) {
23+
async listInvitations({ commit, dispatch }, sessionID) {
2424
try {
2525
commit('setInvitations', await invitationClient.listInvitations(sessionID));
2626
} catch (e) {
27-
commit('criticalError/createError', e, { root: true });
27+
dispatch('criticalError/createError', e, { root: true });
2828
}
2929
},
3030
async invite({ commit, dispatch }, { sessionID, rawEmails }) {

src/store/modules/session/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ export default {
3333
}
3434
},
3535

36-
async logout({ commit }, sessionID) {
36+
async logout({ commit, dispatch }, sessionID) {
3737
try {
3838
await sessionClient.deleteSession(sessionID);
3939
commit('clearSessionID');
4040
} catch (e) {
41-
commit('criticalError/createError', e);
41+
dispatch('criticalError/createError', e);
4242
}
4343
},
4444
},

src/views/ConfirmEmail.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</template>
1212

1313
<script>
14-
import { mapMutations, mapActions, mapState } from 'vuex';
14+
import { mapActions, mapState } from 'vuex';
1515
1616
export default {
1717
name: 'confirmEmail',
@@ -37,7 +37,7 @@ export default {
3737
}
3838
},
3939
methods: {
40-
...mapMutations('criticalError', [
40+
...mapActions('criticalError', [
4141
'createError',
4242
]),
4343
...mapActions('emailConfirmations', [

src/views/Registration.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
</template>
3434

3535
<script>
36-
import { mapMutations, mapActions, mapState } from 'vuex';
36+
import { mapActions, mapState } from 'vuex';
3737
import ErrorMessage from '@/components/ErrorMessage.vue';
3838
3939
export default {
@@ -81,7 +81,7 @@ export default {
8181
}
8282
},
8383
methods: {
84-
...mapMutations('criticalError', [
84+
...mapActions('criticalError', [
8585
'createError',
8686
]),
8787
...mapActions('user', [

src/views/memberIntroduction/Profile.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ dd.small {
8181
</style>
8282

8383
<script>
84-
import { mapMutations, mapActions, mapState } from 'vuex';
84+
import { mapActions, mapState } from 'vuex';
8585
import utils from '@/utils';
8686
8787
const { IdToURLHelper } = utils;
@@ -110,7 +110,7 @@ export default {
110110
}
111111
},
112112
methods: {
113-
...mapMutations('criticalError', [
113+
...mapActions('criticalError', [
114114
'createError',
115115
]),
116116
...mapActions('memberIntroduction/memberProfile', [

0 commit comments

Comments
 (0)