user.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import api from "src/api";
  2. export const getUser = async () => {
  3. const { data } = await api.get("/user/current/auth");
  4. return data.payload;
  5. };
  6. export const getUsers = async () => {
  7. const { data } = await api.get("/user");
  8. return data.payload;
  9. };
  10. export const createUser = async (user) => {
  11. const { data } = await api.post("/user", user);
  12. return data.payload;
  13. };
  14. export const updateUser = async (user, id) => {
  15. const { data } = await api.put(`/user/${id}`, user);
  16. return data.payload;
  17. };
  18. export const deleteUser = async (id) => {
  19. const { data } = await api.delete(`/user/${id}`);
  20. return data.payload;
  21. };
  22. export const userTypes = async () => {
  23. const { data } = await api.get("/user/all/types");
  24. return data.payload;
  25. };
  26. export const getAssociados = async () => {
  27. const users = await getUsers();
  28. return users.filter((u) => u.type === "associado");
  29. };
  30. export const getParceiros = async () => {
  31. const users = await getUsers();
  32. return users.filter((u) => u.type === "parceiro");
  33. };
  34. export const getUsersPaginated = async ({ page = 1, perPage = 10, filter, type, status } = {}) => {
  35. const params = { page, per_page: perPage };
  36. if (type) params.type = type;
  37. if (status) params.status = status;
  38. if (filter) params.search = filter;
  39. const { data } = await api.get("/user/paginated", { params });
  40. return { data: { result: data.payload } };
  41. };
  42. export const getAssociadosPaginated = async (params = {}) =>
  43. getUsersPaginated({ ...params, type: "associado" });