Files
loyaly_cutomerweb/docs/API-GAP-REPORT.md
2026-09-25 16:31:10 +05:30

42 lines
3.0 KiB
Markdown

# API gap report — after backend integration
Generated 2026-09-09. Format: `Feature | Existing API | Frontend status | Missing API`
## Wired to the platform
| Feature | Existing API | Frontend status | Missing API |
|---|---|---|---|
| Login | `POST /api/auth/login` | Wired | — |
| Session restore | `GET /api/auth/me` | Wired — confirmed on every load | — |
| Token refresh | `POST /api/auth/refresh` | Wired — single-flight, persist-before-use | — |
| Logout | `POST /api/auth/logout` | Wired — revokes upstream, then clears | — |
| Site switcher / Store page | `GET /api/sites` | Wired | — |
| Dashboard Visitors | `GET /api/reports/footfall` | Wired — server `total` | — |
| Dashboard Purchases / Revenue / Conversion | `GET /api/reports/conversion` | Wired | — |
| Footfall chart | `GET /api/reports/footfall?bucket=day` | Wired | — |
| Revenue chart · Sales page | `GET /api/reports/conversion?bucket=day` | Wired | — |
| Recent arrivals · Activity page | `GET /api/visits` | Wired — cursor echoed, deduped on `visit_id` | — |
| Customer photos | `GET /api/faces/…` | Wired — proxied so `<img>` works | — |
| Team | `GET /api/team` | Wired | — |
| Mobile → dashboard purchases | `POST /api/purchases` | Wired via `POST /api/visits` | `GET /api/purchases` |
## Cannot be wired — backend required
| Feature | Existing API | Frontend status | Missing API |
|---|---|---|---|
| LYT programme | none | Unavailable panel | `GET /api/rewards`, `/api/rewards/redemptions`, `/api/lyts/ledger` |
| Engagement activities | none | Unavailable panel | `GET /api/activities`, `/api/activities/impact` |
| Campaigns | none | Unavailable panel | `GET /api/campaigns` |
| Customer journey | partial (visit/purchase/return only) | Unavailable panel | `GET /api/reports/journey` |
| Orders / products / stock | none | Unavailable panel | `GET /api/purchases`, `/api/products` |
| Payment split / refunds | none | Unavailable panel | `GET /api/reports/payments`, `/api/reports/refunds` |
| Staff attendance & ranking | `/api/team` is console accounts | Unavailable panel | `GET /api/staff`, `/api/staff/attendance`, `/api/reports/staff-sales` |
| Business profile | none | Unavailable panel | `GET/PATCH /api/settings/profile` |
| Roles matrix · Integrations · API keys · Billing | none | Still local state | `GET /api/settings/{roles,integrations,api-keys,billing}` |
| Security → sessions | `GET/DELETE /api/auth/sessions` | **Not yet wired** — endpoint exists | — |
| Invitations / join flow | `POST /api/team/invitations`, `GET /api/auth/invitation`, `POST /api/auth/register` | **Not yet wired** — endpoints exist, service written | — |
| Loyaly AI chat | none | Still mock replies | `POST /api/ai/chat` |
| Live arrivals stream | `GET /api/visits/stream` | **Not yet wired** — polling only | — |
| Cameras / site health | `GET /api/cameras`, `/api/sites/{id}/check` | **Not yet wired** — service written | — |
| Visitor directory | `GET /api/visitors`, `/history`, `PUT /profile`, `DELETE` | **Not yet wired** — service written | — |