handle 5xx errors globally

remotes/origin/hasaccess
Sanasol 8 years ago
parent 3a02e5b942
commit 43ddeb99d9
  1. 4
      web/src/components/CourseRedactor.vue
  2. 70
      web/src/js/modules/api.js

@ -602,8 +602,6 @@
showNotification("error", this.lessonFields[i]+": "+err.response.data[i].join(', ')); showNotification("error", this.lessonFields[i]+": "+err.response.data[i].join(', '));
} }
} }
} else {
showNotification("error", "Ошибка "+err.toString());
} }
}); });
}, },
@ -851,8 +849,6 @@
showNotification("error", this.fields[i] + ": " + err.response.data[i].join(', ')); showNotification("error", this.fields[i] + ": " + err.response.data[i].join(', '));
} }
} }
} else {
showNotification("error", "Ошибка "+err.toString());
} }
}); });
}, 500); }, 500);

@ -1,19 +1,51 @@
import axios from 'axios'; import axios from 'axios';
import moment from 'moment'; import moment from 'moment';
import {showNotification} from "../../js/modules/notification";
axios.defaults.headers.post['Content-Type'] = 'application/json'; axios.defaults.headers.post['Content-Type'] = 'application/json';
axios.defaults.headers.post['Accept'] = 'application/json'; axios.defaults.headers.post['Accept'] = 'application/json';
export const api = { export const api = {
get: (url, params) => {
let request = axios.get(url, params);
request.catch(api.errorHandler);
return request;
},
post: (url, data, params) => {
let request = axios.post(url, data, params);
request.catch(api.errorHandler);
return request;
},
put: (url, data, params) => {
let request = axios.put(url, data, params);
request.catch(api.errorHandler);
return request;
},
patch: (url, data, params) => {
let request = axios.patch(url, data, params);
request.catch(api.errorHandler);
return request;
},
delete: (url, params) => {
let request = axios.delete(url, params);
request.catch(api.errorHandler);
return request;
},
errorHandler: (error) => {
console.log('всё очень плохо', error, error.response);
if(error.response.status >= 500) {
showNotification("error", "Ошибка сервера "+error.toString());
}
},
getCurrentUser: (accessToken) => { getCurrentUser: (accessToken) => {
return axios.get('/api/v1/users/me/', { return api.get('/api/v1/users/me/', {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
getUsers: (params, accessToken) => { getUsers: (params, accessToken) => {
return axios.get('/api/v1/users/', { return api.get('/api/v1/users/', {
params: params, params: params,
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
@ -21,14 +53,14 @@ export const api = {
}); });
}, },
getCategories: (accessToken) => { getCategories: (accessToken) => {
return axios.get('/api/v1/categories/', { return api.get('/api/v1/categories/', {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
uploadImage: (imageData, accessToken) => { uploadImage: (imageData, accessToken) => {
return axios.post('/api/v1/image-objects/', { return api.post('/api/v1/image-objects/', {
image: imageData, image: imageData,
}, { }, {
headers: { headers: {
@ -37,21 +69,21 @@ export const api = {
}); });
}, },
removeImage: (imageId, accessToken) => { removeImage: (imageId, accessToken) => {
return axios.delete(`/api/v1/image-objects/${imageId}/`, { return api.delete(`/api/v1/image-objects/${imageId}/`, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
loadCourse: (courseId, accessToken) => { loadCourse: (courseId, accessToken) => {
return axios.get(`/api/v1/courses/${courseId}/`, { return api.get(`/api/v1/courses/${courseId}/`, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
loadLive: (courseId, accessToken) => { loadLive: (courseId, accessToken) => {
return axios.get(`/api/v1/live-lesson/${courseId}/`, { return api.get(`/api/v1/live-lesson/${courseId}/`, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
@ -360,56 +392,56 @@ export const api = {
}); });
}, },
addCourse: (courseJson, accessToken) => { addCourse: (courseJson, accessToken) => {
return axios.post('/api/v1/courses/', courseJson, { return api.post('/api/v1/courses/', courseJson, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
updateCourse: (courseId, courseJson, accessToken) => { updateCourse: (courseId, courseJson, accessToken) => {
return axios.put(`/api/v1/courses/${courseId}/`, courseJson, { return api.put(`/api/v1/courses/${courseId}/`, courseJson, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
addLive: (courseJson, accessToken) => { addLive: (courseJson, accessToken) => {
return axios.post('/api/v1/live-lesson/', courseJson, { return api.post('/api/v1/live-lesson/', courseJson, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
updateLive: (courseId, courseJson, accessToken) => { updateLive: (courseId, courseJson, accessToken) => {
return axios.put(`/api/v1/live-lesson/${courseId}/`, courseJson, { return api.put(`/api/v1/live-lesson/${courseId}/`, courseJson, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
getCourseLessons: (courseId, accessToken) => { getCourseLessons: (courseId, accessToken) => {
return axios.get(`/api/v1/lessons/?course=${courseId}`, { return api.get(`/api/v1/lessons/?course=${courseId}`, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
removeCourseLesson: (lessonId, accessToken) => { removeCourseLesson: (lessonId, accessToken) => {
return axios.delete(`/api/v1/lessons/${lessonId}/`, { return api.delete(`/api/v1/lessons/${lessonId}/`, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
addLesson: (lessonJson, accessToken) => { addLesson: (lessonJson, accessToken) => {
return axios.post('/api/v1/lessons/', lessonJson, { return api.post('/api/v1/lessons/', lessonJson, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
updateLesson: (lessonId, lessonJson, accessToken) => { updateLesson: (lessonId, lessonJson, accessToken) => {
return axios.put(`/api/v1/lessons/${lessonId}/`, lessonJson, { return api.put(`/api/v1/lessons/${lessonId}/`, lessonJson, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
@ -437,28 +469,28 @@ export const api = {
if (!removeUrl) { if (!removeUrl) {
return; return;
} }
return axios.delete(removeUrl, { return api.delete(removeUrl, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
getCourseDraft: (accessToken) => { getCourseDraft: (accessToken) => {
return axios.get('/api/v1/courses/draft/', { return api.get('/api/v1/courses/draft/', {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
publishCourse: (courseId, accessToken) => { publishCourse: (courseId, accessToken) => {
return axios.patch(`/api/v1/courses/${courseId}/`, {status: 1}, { return api.patch(`/api/v1/courses/${courseId}/`, {status: 1}, {
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,
} }
}); });
}, },
getSchedule: (accessToken, params) => { getSchedule: (accessToken, params) => {
return axios.get('/api/v1/school-schedules/', { return api.get('/api/v1/school-schedules/', {
params: params, params: params,
headers: { headers: {
'Authorization': `Token ${accessToken}`, 'Authorization': `Token ${accessToken}`,

Loading…
Cancel
Save