storeItem.js 3.5 KB

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