RegisterFrontend/src/features/password-reset/api/usePasswordResetApi.js
2025-09-08 16:04:45 +02:00

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 })
});
}