diff --git a/web/src/components/CourseRedactor.vue b/web/src/components/CourseRedactor.vue index a947359f..abf84283 100644 --- a/web/src/components/CourseRedactor.vue +++ b/web/src/components/CourseRedactor.vue @@ -602,8 +602,6 @@ 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(', ')); } } - } else { - showNotification("error", "Ошибка "+err.toString()); } }); }, 500); diff --git a/web/src/js/modules/api.js b/web/src/js/modules/api.js index 112ea9b7..59c98939 100644 --- a/web/src/js/modules/api.js +++ b/web/src/js/modules/api.js @@ -1,19 +1,51 @@ import axios from 'axios'; import moment from 'moment'; +import {showNotification} from "../../js/modules/notification"; axios.defaults.headers.post['Content-Type'] = 'application/json'; axios.defaults.headers.post['Accept'] = 'application/json'; 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) => { - return axios.get('/api/v1/users/me/', { + return api.get('/api/v1/users/me/', { headers: { 'Authorization': `Token ${accessToken}`, } }); }, getUsers: (params, accessToken) => { - return axios.get('/api/v1/users/', { + return api.get('/api/v1/users/', { params: params, headers: { 'Authorization': `Token ${accessToken}`, @@ -21,14 +53,14 @@ export const api = { }); }, getCategories: (accessToken) => { - return axios.get('/api/v1/categories/', { + return api.get('/api/v1/categories/', { headers: { 'Authorization': `Token ${accessToken}`, } }); }, uploadImage: (imageData, accessToken) => { - return axios.post('/api/v1/image-objects/', { + return api.post('/api/v1/image-objects/', { image: imageData, }, { headers: { @@ -37,21 +69,21 @@ export const api = { }); }, removeImage: (imageId, accessToken) => { - return axios.delete(`/api/v1/image-objects/${imageId}/`, { + return api.delete(`/api/v1/image-objects/${imageId}/`, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, loadCourse: (courseId, accessToken) => { - return axios.get(`/api/v1/courses/${courseId}/`, { + return api.get(`/api/v1/courses/${courseId}/`, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, loadLive: (courseId, accessToken) => { - return axios.get(`/api/v1/live-lesson/${courseId}/`, { + return api.get(`/api/v1/live-lesson/${courseId}/`, { headers: { 'Authorization': `Token ${accessToken}`, } @@ -360,56 +392,56 @@ export const api = { }); }, addCourse: (courseJson, accessToken) => { - return axios.post('/api/v1/courses/', courseJson, { + return api.post('/api/v1/courses/', courseJson, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, updateCourse: (courseId, courseJson, accessToken) => { - return axios.put(`/api/v1/courses/${courseId}/`, courseJson, { + return api.put(`/api/v1/courses/${courseId}/`, courseJson, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, addLive: (courseJson, accessToken) => { - return axios.post('/api/v1/live-lesson/', courseJson, { + return api.post('/api/v1/live-lesson/', courseJson, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, updateLive: (courseId, courseJson, accessToken) => { - return axios.put(`/api/v1/live-lesson/${courseId}/`, courseJson, { + return api.put(`/api/v1/live-lesson/${courseId}/`, courseJson, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, getCourseLessons: (courseId, accessToken) => { - return axios.get(`/api/v1/lessons/?course=${courseId}`, { + return api.get(`/api/v1/lessons/?course=${courseId}`, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, removeCourseLesson: (lessonId, accessToken) => { - return axios.delete(`/api/v1/lessons/${lessonId}/`, { + return api.delete(`/api/v1/lessons/${lessonId}/`, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, addLesson: (lessonJson, accessToken) => { - return axios.post('/api/v1/lessons/', lessonJson, { + return api.post('/api/v1/lessons/', lessonJson, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, updateLesson: (lessonId, lessonJson, accessToken) => { - return axios.put(`/api/v1/lessons/${lessonId}/`, lessonJson, { + return api.put(`/api/v1/lessons/${lessonId}/`, lessonJson, { headers: { 'Authorization': `Token ${accessToken}`, } @@ -437,28 +469,28 @@ export const api = { if (!removeUrl) { return; } - return axios.delete(removeUrl, { + return api.delete(removeUrl, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, getCourseDraft: (accessToken) => { - return axios.get('/api/v1/courses/draft/', { + return api.get('/api/v1/courses/draft/', { headers: { 'Authorization': `Token ${accessToken}`, } }); }, publishCourse: (courseId, accessToken) => { - return axios.patch(`/api/v1/courses/${courseId}/`, {status: 1}, { + return api.patch(`/api/v1/courses/${courseId}/`, {status: 1}, { headers: { 'Authorization': `Token ${accessToken}`, } }); }, getSchedule: (accessToken, params) => { - return axios.get('/api/v1/school-schedules/', { + return api.get('/api/v1/school-schedules/', { params: params, headers: { 'Authorization': `Token ${accessToken}`,