42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
import { log } from "../../../utils/logger";
|
|
|
|
export async function requestPasswordResetApi(email) {
|
|
log("requestPasswordResetApi called", { email });
|
|
const res = await fetch(`${import.meta.env.VITE_API_BASE_URL}/api/request-password-reset`, {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({ email })
|
|
});
|
|
if (!res.ok) {
|
|
let errorData;
|
|
try {
|
|
errorData = await res.json();
|
|
log("requestPasswordResetApi error response:", errorData);
|
|
} catch (e) {
|
|
errorData = {};
|
|
log("requestPasswordResetApi error parsing response:", e);
|
|
}
|
|
const error = new Error(errorData.error || "Request failed");
|
|
error.status = res.status;
|
|
error.data = errorData;
|
|
log("requestPasswordResetApi failed:", error);
|
|
throw error;
|
|
}
|
|
log("requestPasswordResetApi success");
|
|
return res;
|
|
}
|
|
|
|
export async function verifyPasswordResetTokenApi(token) {
|
|
log("verifyPasswordResetTokenApi called", { token });
|
|
return fetch(`${import.meta.env.VITE_API_BASE_URL}/api/verify-password-reset?token=${encodeURIComponent(token)}`);
|
|
}
|
|
|
|
export async function resetPasswordApi(token, newPassword) {
|
|
log("resetPasswordApi called", { token, newPassword: !!newPassword });
|
|
return fetch(`${import.meta.env.VITE_API_BASE_URL}/api/reset-password`, {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({ token, newPassword })
|
|
});
|
|
}
|