haisyam's picture
update
e3531a1
Raw History Blame Contribute Delete
1.85 kB
import axios from "axios";
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || "";
export const api = axios.create({
baseURL: API_BASE_URL,
});
export async function detectPlate(file) {
const formData = new FormData();
formData.append("file", file);
const response = await api.post("/api/detect", formData, {
headers: {
"Content-Type": "multipart/form-data",
},
});
return response.data;
}
export async function getVehicles() {
const response = await api.get("/api/vehicles");
return response.data;
}
export async function addVehicle(data, photoFile) {
const formData = new FormData();
formData.append("plat", data.plat);
formData.append("nama_pemilik", data.nama_pemilik);
formData.append("jenis_kendaraan", data.jenis_kendaraan || "-");
formData.append("keterangan", data.keterangan || "-");
if (photoFile) {
formData.append("foto", photoFile);
}
const response = await api.post("/api/vehicles", formData, {
headers: { "Content-Type": "multipart/form-data" },
});
return response.data;
}
export async function updateVehicle(plat, data) {
const response = await api.put(`/api/vehicles/${plat}`, data);
return response.data;
}
export async function deleteVehicle(plat) {
const response = await api.delete(`/api/vehicles/${plat}`);
return response.data;
}
export async function getHistory() {
const response = await api.get("/api/history");
return response.data;
}
export async function deleteHistoryRecord(index) {
const response = await api.delete(`/api/history/${index}`);
return response.data;
}
export async function clearAllHistory() {
const response = await api.delete("/api/history");
return response.data;
}
export function getMediaUrl(path) {
if (!path) return "";
if (path.startsWith("http")) return path;
return `${API_BASE_URL}${path}`;
}