WEB_logistics/src/api.jsx
2024-10-07 21:29:58 +05:00

593 lines
15 KiB
JavaScript
Executable File

import axios from "axios";
const API_URL = "http://localhost:8000/api";
export const getAuthToken = () => {
return localStorage.getItem("token");
};
export const loginUser = async (loginData) => {
const params = new URLSearchParams();
params.append("grant_type", "password");
params.append("username", loginData.login);
params.append("password", loginData.password);
try {
const response = await axios.post(`${API_URL}/token`, params, {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Accept: "application/json",
},
});
return {
token: response.data.access_token,
user: response.data.user,
};
} catch (error) {
console.log(
"Ошибка при запросе:",
error.response ? error.response.data : error
);
throw error.response ? error.response.data : error;
}
};
export const getAccessories = async () => {
try {
const response = await axios.get(`${API_URL}/accessories`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при получении аксессуаров:", error);
throw error;
}
};
export const createAccessory = async (accessoryData) => {
try {
console.log(accessoryData);
const response = await axios.post(`${API_URL}/accessories`, accessoryData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при создании аксессуара:", error);
throw error;
}
};
export const updateAccessory = async (id, accessoryData) => {
try {
const response = await axios.put(
`${API_URL}/accessories/${id}`,
accessoryData,
{
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
}
);
return response.data;
} catch (error) {
console.log("Ошибка при обновлении аксессуара:", error);
throw error;
}
};
export const deleteAccessory = async (id) => {
try {
await axios.delete(`${API_URL}/accessories/${id}`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
} catch (error) {
console.log("Ошибка при удалении аксессуара:", error);
throw error;
}
};
export const getCities = async () => {
try {
const response = await axios.get(`${API_URL}/cities`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при получении городов:", error);
throw error;
}
};
export const createCity = async (cityData) => {
try {
const response = await axios.post(`${API_URL}/cities`, cityData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при создании города:", error);
throw error;
}
};
export const updateCity = async (id, cityData) => {
try {
const response = await axios.put(`${API_URL}/cities/${id}`, cityData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при обновлении города:", error);
throw error;
}
};
export const deleteCity = async (id) => {
try {
await axios.delete(`${API_URL}/cities/${id}`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
} catch (error) {
console.log("Ошибка при удалении города:", error);
throw error;
}
};
export const getFederalDistricts = async () => {
try {
const response = await axios.get(`${API_URL}/federal-districts`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при получении федеральных округов:", error);
throw error;
}
};
export const createFederalDistrict = async (districtData) => {
try {
const response = await axios.post(
`${API_URL}/federal-districts`,
districtData,
{
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
}
);
return response.data;
} catch (error) {
console.log("Ошибка при создании федерального округа:", error);
throw error;
}
};
export const updateFederalDistrict = async (id, districtData) => {
try {
const response = await axios.put(
`${API_URL}/federal-districts/${id}`,
districtData,
{
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
}
);
return response.data;
} catch (error) {
console.log("Ошибка при обновлении федерального округа:", error);
throw error;
}
};
export const deleteFederalDistrict = async (id) => {
try {
await axios.delete(`${API_URL}/federal-districts/${id}`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
} catch (error) {
console.log("Ошибка при удалении федерального округа:", error);
throw error;
}
};
export const getRoles = async () => {
try {
const response = await axios.get(`${API_URL}/roles`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при загрузке ролей:", error);
throw error;
}
};
export const createRole = async (roleData) => {
try {
const response = await axios.post(`${API_URL}/roles`, roleData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при создании роли:", error);
throw error;
}
};
export const updateRole = async (id, roleData) => {
try {
const response = await axios.put(`${API_URL}/roles/${id}`, roleData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при обновлении роли:", error);
throw error;
}
};
export const deleteRole = async (id) => {
try {
await axios.delete(`${API_URL}/roles/${id}`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
} catch (error) {
console.log("Ошибка при удалении роли:", error);
throw error;
}
};
export const getStatuses = async () => {
try {
const response = await axios.get(`${API_URL}/statuses`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при загрузке статусов:", error);
throw error;
}
};
export const createStatus = async (statusData) => {
try {
const response = await axios.post(`${API_URL}/statuses`, statusData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при создании статуса:", error);
throw error;
}
};
export const updateStatus = async (id, statusData) => {
try {
const response = await axios.put(`${API_URL}/statuses/${id}`, statusData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при обновлении статуса:", error);
throw error;
}
};
export const deleteStatus = async (id) => {
try {
await axios.delete(`${API_URL}/statuses/${id}`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
} catch (error) {
console.log("Ошибка при удалении статуса:", error);
throw error;
}
};
export const getTrucks = async () => {
try {
const response = await axios.get(`${API_URL}/trucks`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при загрузке грузовиков:", error);
throw error;
}
};
export const createTruck = async (truckData) => {
try {
const response = await axios.post(`${API_URL}/trucks`, truckData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при создании грузовика:", error);
throw error;
}
};
export const updateTruck = async (id, truckData) => {
try {
const response = await axios.put(`${API_URL}/trucks/${id}`, truckData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при обновлении грузовика:", error);
throw error;
}
};
export const deleteTruck = async (id) => {
try {
await axios.delete(`${API_URL}/trucks/${id}`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
} catch (error) {
console.log("Ошибка при удалении грузовика:", error);
throw error;
}
};
export const getUsers = async () => {
try {
const response = await axios.get(`${API_URL}/users`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при загрузке пользователей:", error);
throw error;
}
};
export const createUser = async (userData) => {
try {
const response = await axios.post(`${API_URL}/users`, userData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при создании пользователя:", error);
throw error;
}
};
export const updateUser = async (id, userData) => {
try {
const response = await axios.put(`${API_URL}/users/${id}`, userData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при обновлении пользователя:", error);
throw error;
}
};
export const deleteUser = async (id) => {
try {
await axios.delete(`${API_URL}/users/${id}`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
} catch (error) {
console.log("Ошибка при удалении пользователя:", error);
throw error;
}
};
export const getTotalOrders = async () => {
try {
const response = await axios.get(`${API_URL}/total-orders`, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при загрузке общих заказов:", error);
throw error;
}
};
export const createTotalOrder = async (orderData) => {
try {
const response = await axios.post(`${API_URL}/total-orders`, orderData, {
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
});
return response.data;
} catch (error) {
console.log("Ошибка при создании заказа:", error);
throw error;
}
};
export const getDeliveryOrders = async (totalOrderId) => {
try {
const response = await axios.get(
`${API_URL}/delivery-orders/total/${totalOrderId}`,
{
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
}
);
return response.data;
} catch (error) {
console.log("Ошибка при загрузке подзаказов:", error);
throw error;
}
};
export const getDeliveryAccessories = async (deliveryOrderId) => {
try {
const response = await axios.get(
`${API_URL}/delivery-orders/${deliveryOrderId}/accessories`,
{
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
}
);
return response.data;
} catch (error) {
console.log("Ошибка при загрузке доставок:", error);
throw error;
}
};
export const getDeliveryOrderDetails = async (deliveryOrderId) => {
try {
const response = await axios.get(
`${API_URL}/delivery-orders/${deliveryOrderId}`,
{
headers: {
Authorization: `Bearer ${getAuthToken()}`,
Accept: "application/json",
},
}
);
return response.data;
} catch (error) {
console.log("Ошибка при загрузке деталей заказа доставки:", error);
throw error;
}
};
export const calculateTotalOrder = async (deadline, robotsCount) => {
try {
const response = await axios.post(
`${API_URL}/total-orders/calculate`,
null,
{
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
}
);
return response.data;
} catch (error) {
console.log("Ошибка при запуске расчета заказа:", error);
throw error;
}
};
export const updateDeliveryOrderRoute = async (
deliveryOrderId,
estimatedRouteTime,
route
) => {
console.log({
estimated_route_time_in_minutes: estimatedRouteTime,
route: route,
});
try {
const response = await axios.put(
`${API_URL}/delivery-orders/${deliveryOrderId}/route`,
{
estimated_route_time_in_minutes: estimatedRouteTime,
route: route,
},
{
headers: {
Authorization: `Bearer ${getAuthToken()}`,
"Content-Type": "application/json",
},
}
);
return response.data;
} catch (error) {
console.error("Ошибка при обновлении маршрута подзаказа:", error);
throw error;
}
};