import { redirect } from "react-router-dom"; import { ApiClient } from "./api_client"; import { clearSessionStorage, deleteEmptyFields, setFormErrorsInSessionStorage } from "../lib/form_utils"; import Token from "../lib/token"; export async function editAccount({ request }) { const client = new ApiClient(); let form_data = await request.formData(); form_data = deleteEmptyFields(form_data); const response = await client.put("/account", form_data); if(response.status == 401) return redirect("/products"); client.token.set(response.data.token); client.token.setRefresh(response.data.refresh); return redirect("/account"); } export async function editAddress({ params, request }) { clearSessionStorage(); const client = new ApiClient(); let form_data = await request.formData(); form_data = deleteEmptyFields(form_data); try { const response = await client.put(`/account/addresses/${params.addressId}`, form_data); if(response.status == 401 || response.status == 404) return redirect("/products"); return redirect("/account"); } catch(error) { if(error.response.status == 401) { new Token().logout; return redirect("/products") } else { setFormErrorsInSessionStorage(error.response.data.errors); return redirect(`/account/addresses/${params.addressId}/edit`); } } }