Compare commits
2 Commits
51ca53af88
...
e72c7e105a
| Author | SHA1 | Date | |
|---|---|---|---|
| e72c7e105a | |||
|
|
6fb6e97341 |
@ -452,7 +452,7 @@ export interface ContactFormResponse {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Submit contact form
|
* Submit contact form (public endpoint - no authentication required)
|
||||||
*/
|
*/
|
||||||
export async function submitContactForm(
|
export async function submitContactForm(
|
||||||
data: ContactFormInput
|
data: ContactFormInput
|
||||||
@ -462,18 +462,34 @@ export async function submitContactForm(
|
|||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
|
"Accept": "application/json",
|
||||||
},
|
},
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
name: data.name,
|
name: data.name.trim(),
|
||||||
email: data.email,
|
email: data.email.trim().toLowerCase(),
|
||||||
phone: data.phone,
|
phone: data.phone.trim(),
|
||||||
message: data.message,
|
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) {
|
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;
|
const error: ApiError = responseData;
|
||||||
throw new Error(extractErrorMessage(error));
|
throw new Error(extractErrorMessage(error));
|
||||||
}
|
}
|
||||||
@ -483,7 +499,7 @@ export async function submitContactForm(
|
|||||||
if (error instanceof Error) {
|
if (error instanceof Error) {
|
||||||
throw 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