user.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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 uploadMyAvatar = async (file) => {
  27. const formData = new FormData();
  28. formData.append("photo", file);
  29. const { data } = await api.post("/user/my/avatar", formData, {
  30. headers: { "Content-Type": "multipart/form-data" },
  31. });
  32. return data.payload;
  33. };
  34. export const deleteMyAvatar = async () => {
  35. const { data } = await api.delete("/user/my/avatar");
  36. return data.payload;
  37. };
  38. export const getAssociados = async () => {
  39. const users = await getUsers();
  40. return users.filter((u) => u.type === "associado");
  41. };
  42. export const getParceiros = async () => {
  43. const users = await getUsers();
  44. return users.filter((u) => u.type === "parceiro");
  45. };
  46. export const getUsersPaginated = async ({
  47. page = 1,
  48. perPage = 10,
  49. filter,
  50. type,
  51. status,
  52. position_id,
  53. sector_id,
  54. } = {}) => {
  55. const params = { page, per_page: perPage };
  56. if (type) params.type = type;
  57. if (status) params.status = status;
  58. if (filter) params.search = filter;
  59. if (position_id) params.position_id = position_id;
  60. if (sector_id) params.sector_id = sector_id;
  61. const { data } = await api.get("/user/paginated", { params });
  62. return { data: { result: data.payload } };
  63. };
  64. export const getAssociadosPaginated = async (params = {}) =>
  65. getUsersPaginated({ ...params, type: "associado" });
  66. export const setUserOnLeave = async (id) => {
  67. const { data } = await api.put(`/user/${id}/on-leave`);
  68. return data.payload;
  69. };
  70. export const updateMyProfile = async (payload) => {
  71. const { data } = await api.put("/user/my/profile", payload);
  72. return data.payload;
  73. };
  74. export const importAssociados = async (file) => {
  75. const formData = new FormData();
  76. formData.append("file", file);
  77. const { data } = await api.post("/user/import/associados", formData, {
  78. headers: { "Content-Type": "multipart/form-data" },
  79. });
  80. return data.payload;
  81. };