storeItem.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import api from "src/api";
  2. export const getStoreItems = async () => {
  3. const { data } = await api.get("/store-item");
  4. return data.payload;
  5. };
  6. export const getStoreItemsPaginated = async ({ page = 1, perPage = 10, filter, status, category_id } = {}) => {
  7. const params = { page, per_page: perPage };
  8. if (filter) params.search = filter;
  9. if (status) params.status = status;
  10. if (category_id) params.category_id = category_id;
  11. const { data } = await api.get("/store-item/paginated", { params });
  12. return { data: { result: data.payload } };
  13. };
  14. export const getStoreItem = async (id) => {
  15. const { data } = await api.get(`/store-item/${id}`);
  16. return data.payload;
  17. };
  18. export const createStoreItem = async (payload) => {
  19. const { data } = await api.post("/store-item", payload);
  20. return data.payload;
  21. };
  22. export const updateStoreItem = async (id, payload) => {
  23. const { data } = await api.put(`/store-item/${id}`, payload);
  24. return data.payload;
  25. };
  26. export const deleteStoreItem = async (id) => {
  27. await api.delete(`/store-item/${id}`);
  28. };
  29. export const toggleStoreItemStatus = async (id) => {
  30. const { data } = await api.patch(`/store-item/${id}/toggle-status`);
  31. return data.payload;
  32. };
  33. export const getMyInterests = async () => {
  34. const { data } = await api.get("/store-item/my/interests");
  35. return data.payload;
  36. };
  37. export const toggleInterest = async (id) => {
  38. const { data } = await api.post(`/store-item/${id}/interest`);
  39. return data.payload;
  40. };
  41. export const uploadStoreItemMedia = async (id, file) => {
  42. const form = new FormData();
  43. form.append("file", file);
  44. const { data } = await api.post(`/store-item/${id}/media`, form, {
  45. headers: { "Content-Type": "multipart/form-data" },
  46. });
  47. return data.payload;
  48. };
  49. export const deleteStoreItemMedia = async (id, mediaId) => {
  50. await api.delete(`/store-item/${id}/media/${mediaId}`);
  51. };
  52. export const getStoreItemInterests = async (id) => {
  53. const { data } = await api.get(`/store-item/${id}/interests`);
  54. return data.payload;
  55. };
  56. export const addStoreItemVariation = async (itemId, payload) => {
  57. const { data } = await api.post(`/store-item/${itemId}/variation`, payload);
  58. return data.payload;
  59. };
  60. export const updateStoreItemVariation = async (itemId, variationId, payload) => {
  61. const { data } = await api.patch(`/store-item/${itemId}/variation/${variationId}`, payload);
  62. return data.payload;
  63. };
  64. export const deleteStoreItemVariation = async (itemId, variationId) => {
  65. await api.delete(`/store-item/${itemId}/variation/${variationId}`);
  66. };