costco-grocery-list/frontend/src/api/list.js
2026-01-02 14:27:39 -08:00

46 lines
1.5 KiB
JavaScript

import api from "./axios";
export const getList = () => api.get("/list");
export const getItemByName = (itemName) => api.get("/list/item-by-name", { params: { itemName: itemName } });
export const addItem = (itemName, quantity, imageFile = null) => {
const formData = new FormData();
formData.append("itemName", itemName);
formData.append("quantity", quantity);
if (imageFile) {
formData.append("image", imageFile);
}
return api.post("/list/add", formData, {
headers: {
"Content-Type": "multipart/form-data",
},
});
};
export const getClassification = (id) => api.get(`/list/item/${id}/classification`);
export const updateItemWithClassification = (id, itemName, quantity, classification) => {
return api.put(`/list/item/${id}`, {
itemName,
quantity,
classification
});
};
export const markBought = (id) => api.post("/list/mark-bought", { id });
export const getSuggestions = (query) => api.get("/list/suggest", { params: { query: query } });
export const getRecentlyBought = () => api.get("/list/recently-bought");
export const updateItemImage = (id, itemName, quantity, imageFile) => {
const formData = new FormData();
formData.append("id", id);
formData.append("itemName", itemName);
formData.append("quantity", quantity);
formData.append("image", imageFile);
return api.post("/list/update-image", formData, {
headers: {
"Content-Type": "multipart/form-data",
},
});
};