Merge pull request 'Enhance submitContactForm function to improve input sanitization and response handling. Update documentation to clarify that the endpoint does not require authentication. Implement checks for empty responses and specific error handling for authenticati…' (#35) from feat/booking-panel into master
Reviewed-on: http://35.207.46.142/ATTUNE-HEART-THERAPY/website/pulls/35
This commit is contained in:
commit
e72c7e105a
@ -452,7 +452,7 @@ export interface ContactFormResponse {
|
||||
}
|
||||
|
||||
/**
|
||||
* Submit contact form
|
||||
* Submit contact form (public endpoint - no authentication required)
|
||||
*/
|
||||
export async function submitContactForm(
|
||||
data: ContactFormInput
|
||||
@ -462,18 +462,34 @@ export async function submitContactForm(
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"Accept": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: data.name,
|
||||
email: data.email,
|
||||
phone: data.phone,
|
||||
message: data.message,
|
||||
name: data.name.trim(),
|
||||
email: data.email.trim().toLowerCase(),
|
||||
phone: data.phone.trim(),
|
||||
message: data.message.trim(),
|
||||
}),
|
||||
});
|
||||
|
||||
const responseData = await response.json();
|
||||
// Handle empty responses
|
||||
const contentType = response.headers.get("content-type");
|
||||
let responseData: any;
|
||||
|
||||
if (contentType && contentType.includes("application/json")) {
|
||||
const text = await response.text();
|
||||
responseData = text ? JSON.parse(text) : {};
|
||||
} else {
|
||||
const text = await response.text();
|
||||
responseData = text ? { message: text } : {};
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
// Check for authentication error specifically
|
||||
if (response.status === 401 || response.status === 403) {
|
||||
throw new Error("Contact form submission requires authentication. Please contact support if this is a public form.");
|
||||
}
|
||||
|
||||
const error: ApiError = responseData;
|
||||
throw new Error(extractErrorMessage(error));
|
||||
}
|
||||
@ -483,7 +499,7 @@ export async function submitContactForm(
|
||||
if (error instanceof Error) {
|
||||
throw error;
|
||||
}
|
||||
throw new Error("Failed to submit contact form");
|
||||
throw new Error("Failed to submit contact form. Please try again later.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user