37 lines
1.3 KiB
Markdown
37 lines
1.3 KiB
Markdown
# @lilith/provider-api-client
|
|
|
|
Type-safe HTTP client for the provider API public surface.
|
|
|
|
## Base URL resolution
|
|
|
|
1. `import.meta.env.VITE_QUINN_API_BASE_URL` (Vite env override)
|
|
2. `localhost` / `127.0.0.1` → `http://localhost:3040`
|
|
3. Otherwise → `https://api.quinn.apricot.local`
|
|
|
|
## Exports
|
|
|
|
### Types
|
|
|
|
`BlogPostSummary`, `BlogPost`, `ContactChannel`, `ContactPayload`, `ContactResult`, `TouringPayload`, `TouringResult`, `TrackAvailability`, `RosterApplicationPayload`, `RosterApplicationResult`, `AnalyticsEventPayload`
|
|
|
|
### Error classes
|
|
|
|
`ApiError`, `NotFoundError`, `RateLimitError`, `ValidationError`, `NetworkError`
|
|
|
|
### Endpoints
|
|
|
|
| Function | Method | Path |
|
|
|---|---|---|
|
|
| `fetchBlogPosts()` | GET | `/www/blog` |
|
|
| `fetchBlogPost(slug)` | GET | `/www/blog/:slug` |
|
|
| `submitContact(payload)` | POST | `/public/contact` |
|
|
| `subscribeToTouring(payload)` | POST | `/public/touring/subscribe` |
|
|
| `fetchAvailability()` | GET | `/public/roster/availability` |
|
|
| `fetchAvailabilityBySlug(slug)` | GET | `/public/roster/availability/:slug` |
|
|
| `submitRosterApplication(payload)` | POST | `/public/roster/apply` |
|
|
| `trackEvent(path, payload)` | POST | `/public/analytics/track/*` (fire-and-forget) |
|
|
|
|
### Low-level
|
|
|
|
`apiFetch<T>(url, init?)` — typed fetch with automatic error mapping
|
|
`resolveBaseUrl()` — base URL resolution
|