починил добавление линз из набора, поправил обнаружение ошибки авторизации
This commit is contained in:
parent
4cbd0885da
commit
63b472fdb6
@ -8,7 +8,7 @@ const loginUser = async (loginData) => {
|
|||||||
});
|
});
|
||||||
return response.data.access_token;
|
return response.data.access_token;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.status === 401) {
|
if (error.status === 403) {
|
||||||
throw new Error("Неверное имя пользователя или пароль")
|
throw new Error("Неверное имя пользователя или пароль")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const getAllLensTypes = async (token) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const addLens = async (token, lens) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const deleteLens = async (token, lens_id) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -10,7 +10,7 @@ const getAllLenses = async (token) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw Error("Ошибка авторизации: пользователь неяден или токен недействителен");
|
throw Error("Ошибка авторизации: пользователь неяден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw Error(error.message);
|
throw Error(error.message);
|
||||||
|
|||||||
@ -12,7 +12,7 @@ const updateLens = async (token, lensId, lensData) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const addPatient = async (token, patient) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const deletePatient = async (token, patient_id) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const getAllPatients = async (token) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const updatePatient = async (token, patientId, patientData) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const addSetContent = async (token, set_content, set_id) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const getSetContentBySetId = async (token, set_id) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const updateSetContent = async (token, set_content, set_id) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const addSet = async (token, set) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
22
web-app/src/api/sets/AppendLensesFromSet.jsx
Normal file
22
web-app/src/api/sets/AppendLensesFromSet.jsx
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import axios from "axios";
|
||||||
|
import CONFIG from "../../core/Config.jsx";
|
||||||
|
|
||||||
|
|
||||||
|
const appendLensesFromSet = async (token, set_id) => {
|
||||||
|
try {
|
||||||
|
const response = await axios.post(`${CONFIG.BASE_URL}/sets/append_lenses/${set_id}/`, {}, {
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${token}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
return response.data;
|
||||||
|
} catch (error) {
|
||||||
|
if (error.response?.status === 403) {
|
||||||
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
|
} else {
|
||||||
|
throw new Error(error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default appendLensesFromSet;
|
||||||
@ -10,7 +10,7 @@ const deleteSet = async (token, set_id) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -10,7 +10,7 @@ const getAllSets = async (token) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const updateSet = async (token, set_id, set) => {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response?.status === 401) {
|
if (error.response?.status === 403) {
|
||||||
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
|
||||||
}
|
}
|
||||||
throw new Error(error.message);
|
throw new Error(error.message);
|
||||||
|
|||||||
@ -71,7 +71,7 @@ const SetFormModal = ({visible, onCancel, setData, onSubmit}) => {
|
|||||||
periphery_toricity: 0,
|
periphery_toricity: 0,
|
||||||
side: "левая",
|
side: "левая",
|
||||||
count: 1,
|
count: 1,
|
||||||
type_id: null
|
type_id: lensTypes ? lensTypes[0].id : null
|
||||||
}]);
|
}]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import PropTypes from "prop-types";
|
|||||||
import {Card, Modal, Tooltip} from "antd";
|
import {Card, Modal, Tooltip} from "antd";
|
||||||
import {DeleteOutlined, EditOutlined, PlusOutlined} from "@ant-design/icons";
|
import {DeleteOutlined, EditOutlined, PlusOutlined} from "@ant-design/icons";
|
||||||
|
|
||||||
const SetListCard = ({set, handleEditSet, handleAddSet, handleDeleteSet}) => {
|
const SetListCard = ({set, handleEditSet, handleDeleteSet, handleAppendSet}) => {
|
||||||
|
|
||||||
const confirmSetDelete = () => {
|
const confirmSetDelete = () => {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
@ -14,10 +14,20 @@ const SetListCard = ({set, handleEditSet, handleAddSet, handleDeleteSet}) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const confirmAppendSet = () => {
|
||||||
|
Modal.confirm({
|
||||||
|
title: "Добавление набора",
|
||||||
|
content: `Вы уверены, что хотите добавить набор ${set.title} в общий список линз?`,
|
||||||
|
okText: "Да, добавить",
|
||||||
|
cancelText: "Отмена",
|
||||||
|
onOk: () => handleAppendSet(set),
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const actions = [
|
const actions = [
|
||||||
<Tooltip title="Добавить набор" key={"add"}>
|
<Tooltip title="Добавление набора в общий список линз" key={"add"}>
|
||||||
<PlusOutlined
|
<PlusOutlined
|
||||||
onClick={handleAddSet}
|
onClick={confirmAppendSet}
|
||||||
/>
|
/>
|
||||||
</Tooltip>,
|
</Tooltip>,
|
||||||
|
|
||||||
@ -54,7 +64,7 @@ SetListCard.propTypes = {
|
|||||||
title: PropTypes.string.isRequired,
|
title: PropTypes.string.isRequired,
|
||||||
}).isRequired,
|
}).isRequired,
|
||||||
handleEditSet: PropTypes.func.isRequired,
|
handleEditSet: PropTypes.func.isRequired,
|
||||||
handleAddSet: PropTypes.func.isRequired,
|
handleAppendSet: PropTypes.func.isRequired,
|
||||||
handleDeleteSet: PropTypes.func.isRequired,
|
handleDeleteSet: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import {useAuth} from "../AuthContext.jsx";
|
import {useAuth} from "../AuthContext.jsx";
|
||||||
import {useEffect, useState} from "react";
|
import {useEffect, useState} from "react";
|
||||||
import {Col, FloatButton, Input, List, notification, Row, Select, Spin, Tooltip} from "antd";
|
import {FloatButton, Input, List, notification, Row, Spin} from "antd";
|
||||||
import getAllSets from "../api/sets/GetAllSets.jsx";
|
import getAllSets from "../api/sets/GetAllSets.jsx";
|
||||||
import {LoadingOutlined, PlusOutlined} from "@ant-design/icons";
|
import {LoadingOutlined, PlusOutlined} from "@ant-design/icons";
|
||||||
import SetListCard from "../components/sets/SetListCard.jsx";
|
import SetListCard from "../components/sets/SetListCard.jsx";
|
||||||
@ -10,6 +10,7 @@ import addSet from "../api/sets/AddSet.jsx";
|
|||||||
import deleteSet from "../api/sets/DeleteSet.jsx";
|
import deleteSet from "../api/sets/DeleteSet.jsx";
|
||||||
import addSetContent from "../api/set_content/AddSetContent.jsx";
|
import addSetContent from "../api/set_content/AddSetContent.jsx";
|
||||||
import updateSetContent from "../api/set_content/UpdateSetContent.jsx";
|
import updateSetContent from "../api/set_content/UpdateSetContent.jsx";
|
||||||
|
import appendLensesFromSet from "../api/sets/AppendLensesFromSet.jsx";
|
||||||
|
|
||||||
|
|
||||||
const SetLensesPage = () => {
|
const SetLensesPage = () => {
|
||||||
@ -105,6 +106,24 @@ const SetLensesPage = () => {
|
|||||||
setIsModalVisible(false);
|
setIsModalVisible(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleAppendSet = async (set) => {
|
||||||
|
try {
|
||||||
|
await appendLensesFromSet(user.token, set.id);
|
||||||
|
notification.success({
|
||||||
|
message: "Линзы добавлены",
|
||||||
|
description: "Линзы успешно добавлены.",
|
||||||
|
placement: "topRight",
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Ошибка добавления линз:", error);
|
||||||
|
notification.error({
|
||||||
|
message: "Ошибка добавления линз",
|
||||||
|
description: "Проверьте подключение к сети.",
|
||||||
|
placement: "topRight",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handleModalSetSubmit = async (set, content = []) => {
|
const handleModalSetSubmit = async (set, content = []) => {
|
||||||
try {
|
try {
|
||||||
let refreshed_set;
|
let refreshed_set;
|
||||||
@ -217,8 +236,8 @@ const SetLensesPage = () => {
|
|||||||
<SetListCard
|
<SetListCard
|
||||||
set={set}
|
set={set}
|
||||||
handleEditSet={handleEditSet}
|
handleEditSet={handleEditSet}
|
||||||
handleAddSet={handleAddSet}
|
|
||||||
handleDeleteSet={handleDeleteSet}
|
handleDeleteSet={handleDeleteSet}
|
||||||
|
handleAppendSet={handleAppendSet}
|
||||||
/>
|
/>
|
||||||
</List.Item>
|
</List.Item>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user