address.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import api from "src/api";
  2. export const getAddresses = async (source, sourceId) => {
  3. const { data } = await api.get(`/addresses?source=${source}&source_id=${sourceId}`);
  4. return data.payload;
  5. };
  6. export const getAddress = async (id) => {
  7. const { data } = await api.get(`/addresses/${id}`);
  8. return data.payload;
  9. };
  10. export const createAddress = async (address) => {
  11. const { data } = await api.post(`/addresses`, { ...address });
  12. return data.payload;
  13. };
  14. export const updateAddress = async (address, id) => {
  15. const { data } = await api.put(`/addresses/${id}`, { ...address });
  16. return data.payload;
  17. };
  18. export const deleteAddress = async (id) => {
  19. const { data } = await api.delete(`/addresses/${id}`);
  20. return data.payload;
  21. };
  22. export const searchAddressByCEP = async (cep) => {
  23. try {
  24. const responseCep = await fetch(`https://viacep.com.br/ws/${cep}/json/`);
  25. const data = await responseCep.json();
  26. if (data.erro) {
  27. return null;
  28. }
  29. const response = await api.get('busca-estado-cidade-por-descricao', {
  30. params: {
  31. stateUf: data.uf,
  32. cityName: data.localidade
  33. }
  34. });
  35. return {
  36. zip_code: data.cep,
  37. address: data.logradouro,
  38. district: data.bairro,
  39. has_complement: !!data.complemento,
  40. complement: data.complemento || '',
  41. nickname: "",
  42. instructions: "",
  43. address_type: "home",
  44. state: response.data.payload.state,
  45. city: response.data.payload.city
  46. };
  47. } catch {
  48. return null;
  49. }
  50. };