починил добавление линз из набора, поправил обнаружение ошибки авторизации

This commit is contained in:
Андрей Дувакин 2025-03-01 14:14:40 +05:00
parent 4cbd0885da
commit 63b472fdb6
21 changed files with 75 additions and 24 deletions

View File

@ -8,7 +8,7 @@ const loginUser = async (loginData) => {
});
return response.data.access_token;
} catch (error) {
if (error.status === 401) {
if (error.status === 403) {
throw new Error("Неверное имя пользователя или пароль")
}

View File

@ -11,7 +11,7 @@ const getAllLensTypes = async (token) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const addLens = async (token, lens) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const deleteLens = async (token, lens_id) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -10,7 +10,7 @@ const getAllLenses = async (token) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw Error("Ошибка авторизации: пользователь неяден или токен недействителен");
}
throw Error(error.message);

View File

@ -12,7 +12,7 @@ const updateLens = async (token, lensId, lensData) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const addPatient = async (token, patient) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const deletePatient = async (token, patient_id) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const getAllPatients = async (token) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const updatePatient = async (token, patientId, patientData) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const addSetContent = async (token, set_content, set_id) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const getSetContentBySetId = async (token, set_id) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const updateSetContent = async (token, set_content, set_id) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const addSet = async (token, set) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View 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;

View File

@ -10,7 +10,7 @@ const deleteSet = async (token, set_id) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -10,7 +10,7 @@ const getAllSets = async (token) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -11,7 +11,7 @@ const updateSet = async (token, set_id, set) => {
});
return response.data;
} catch (error) {
if (error.response?.status === 401) {
if (error.response?.status === 403) {
throw new Error("Ошибка авторизации: пользователь не найден или токен недействителен");
}
throw new Error(error.message);

View File

@ -71,7 +71,7 @@ const SetFormModal = ({visible, onCancel, setData, onSubmit}) => {
periphery_toricity: 0,
side: "левая",
count: 1,
type_id: null
type_id: lensTypes ? lensTypes[0].id : null
}]);
};

View File

@ -2,7 +2,7 @@ import PropTypes from "prop-types";
import {Card, Modal, Tooltip} from "antd";
import {DeleteOutlined, EditOutlined, PlusOutlined} from "@ant-design/icons";
const SetListCard = ({set, handleEditSet, handleAddSet, handleDeleteSet}) => {
const SetListCard = ({set, handleEditSet, handleDeleteSet, handleAppendSet}) => {
const confirmSetDelete = () => {
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 = [
<Tooltip title="Добавить набор" key={"add"}>
<Tooltip title="Добавление набора в общий список линз" key={"add"}>
<PlusOutlined
onClick={handleAddSet}
onClick={confirmAppendSet}
/>
</Tooltip>,
@ -54,7 +64,7 @@ SetListCard.propTypes = {
title: PropTypes.string.isRequired,
}).isRequired,
handleEditSet: PropTypes.func.isRequired,
handleAddSet: PropTypes.func.isRequired,
handleAppendSet: PropTypes.func.isRequired,
handleDeleteSet: PropTypes.func.isRequired,
};

View File

@ -1,6 +1,6 @@
import {useAuth} from "../AuthContext.jsx";
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 {LoadingOutlined, PlusOutlined} from "@ant-design/icons";
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 addSetContent from "../api/set_content/AddSetContent.jsx";
import updateSetContent from "../api/set_content/UpdateSetContent.jsx";
import appendLensesFromSet from "../api/sets/AppendLensesFromSet.jsx";
const SetLensesPage = () => {
@ -105,6 +106,24 @@ const SetLensesPage = () => {
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 = []) => {
try {
let refreshed_set;
@ -217,8 +236,8 @@ const SetLensesPage = () => {
<SetListCard
set={set}
handleEditSet={handleEditSet}
handleAddSet={handleAddSet}
handleDeleteSet={handleDeleteSet}
handleAppendSet={handleAppendSet}
/>
</List.Item>
)}