|
Some checks failed
Veza CI / Backend (Go) (push) Failing after 0s
Veza CI / Frontend (Web) (push) Failing after 0s
Veza CI / Rust (Stream Server) (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Security Scan / Secret Scanning (gitleaks) (push) Failing after 0s
Veza CI / Notify on failure (push) Failing after 0s
Pivoted B2 pilote from developer.ts → dashboard because the developer
endpoints (/developer/api-keys) are not yet covered by swaggo annotations
in veza-backend-api, so they do not appear in openapi.yaml. Completing
the OpenAPI spec is a backend chantier of its own (v1.0.9 scope).
Dashboard was chosen instead:
- single endpoint (GET /api/v1/dashboard)
- fully spec-covered (Dashboard tag)
- non-trivial consumer chain (feature/dashboard/services → hooks → UI)
Changes:
- apps/web/src/features/dashboard/services/dashboardService.ts
Replace `apiClient.get('/dashboard', { params, signal })` with
`getApiV1Dashboard({ activity_limit, library_limit, stats_period },
{ signal })`. Same response shape, same error fallback, same
interceptor chain — only the fetch call is now typed + generated.
Removes the direct @/services/api/client import.
- apps/web/src/services/api/orval-mutator.ts
New `stripBaseURLPrefix` helper. Orval emits absolute paths
(e.g. `/api/v1/dashboard`) but apiClient.baseURL resolves to
`/api/v1` already. The mutator now strips a matching `/api/vN`
prefix before delegating to apiClient, preventing double-prefix.
No-op when baseURL lacks the prefix.
Verification:
- npm run typecheck ✅
- npm run lint ✅ (0 errors, pre-existing warnings unchanged)
- npm test -- --run src/features/dashboard ✅ 4/4 pass
Scope adjustment (discovered during execution): many hand-written
services (developer, search, queue, social, metrics) call endpoints
that lack swaggo annotations. Full bulk migration (original B3-B8)
requires completing the OpenAPI spec first. Next direct-migration
candidates are the fully spec-covered services: auth, track, user,
playlist, marketplace.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| web | ||