import axios, { AxiosError } from "axios";
import { toast } from "react-toastify";

export const useAssetMap = () => {
	return {
		remove: (id: string): Promise<void> => {
			if (!window.confirm("Вы действительно хотите удалить этот маппинг?")) {
				return Promise.reject();
			}

			return axios
				.delete(`/api/asset-maps/${id}`)
				.then(() => {
					toast.success("Маппинг успешно удален");
				})
				.catch((error: AxiosError<string>) => {
					console.error(error);
					toast.error(error.response?.data ?? error.message);
				});
		},

		update: (
			id: string,
			request: {
				assetId: string | null,
			}): Promise<void> => {
			return axios
				.put(`/api/asset-maps/${id}`, request)
				.then(() => {
					toast.success("Маппинг успешно обновлен");
				})
				.catch((error: AxiosError<string>) => {
					toast.error("Произошла ошибка при обновлении:\n" + (error.response?.data || error.message));
				});
		},
	};
};