You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.7 KiB

import axios from "axios";
export const BASE_URL = import.meta.env.VITE_API_URL;
export const api = axios.create({
baseURL:
import.meta.env.MODE === "development"
? "http://localhost:5173/"
: BASE_URL,
});
const enrichParamsWithRegionFilter = (params, region) => {
const resultParams = params ? params : new URLSearchParams();
if (region) {
if (region.type === "ao") {
resultParams.append("district[]", region.id);
}
if (region.type === "rayon") {
resultParams.append("rayon", region.id);
}
}
return resultParams;
};
export const getPoints = async (params, region, signal) => {
const resultParams = enrichParamsWithRegionFilter(params, region);
const { data } = await api.get(
`/api/data/?${resultParams.toString()}`, {signal}
);
return data;
};
export const exportPoints = async (params, region) => {
const resultParams = enrichParamsWithRegionFilter(params, region);
const { data } = await api.get(
`/api/data/to_csv/?${resultParams.toString()}`,
{ responseType: "arraybuffer" }
);
return data;
};
export const downloadImportTemplate = async (dataType) => {
const { data } = await api.get(
`/default_data/templates/${dataType}.xlsx`,
{ responseType: "arraybuffer" }
);
return data;
};
export const uploadPointsFile = async (file, dataType, refill = false,) => {
const formData = new FormData();
formData.append("file", file);
formData.append("model", dataType);
formData.append("refill", refill);
const { data } = await api.post(
`/api/import_file/`,
formData
);
return data;
};
export const startAnalysis = async () => {
const { data } = await api.get(`/api/data/start_ds_miracle`);
return data;
};