lilith-platform.live/codebase/@packages/@lilith/provider-api-client/src/endpoints/contact.ts
2026-04-18 19:25:56 -07:00

23 lines
979 B
TypeScript

import { apiFetch, RateLimitError, ApiError, NetworkError } from '../client';
import type { ContactPayload, ContactResult } from '../types/contact';
import { resolveBaseUrl } from '../base-url';
export async function submitContact(payload: ContactPayload): Promise<ContactResult> {
try {
const data = await apiFetch<{ id?: number; status?: string; error?: string }>(`${resolveBaseUrl()}/public/contact`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload),
});
return { success: true, id: data.id ?? 0 };
} catch (err) {
if (err instanceof RateLimitError) throw err;
if (err instanceof NetworkError) {
return { success: false, error: 'Network error. Please check your connection and try again.' };
}
if (err instanceof ApiError) {
return { success: false, error: err.message };
}
return { success: false, error: 'Something went wrong. Please try again.' };
}
}