64 lines
2.3 KiB
Markdown
64 lines
2.3 KiB
Markdown
# API Envelope Runtime Contract — Tasks
|
||
|
||
## Task 1: Добавить ApiEnvelopePayload и обновить TransformInterceptor
|
||
|
||
- [x] Добавить `ApiEnvelopePayload<T>` класс в `api-response.dto.ts`
|
||
- [x] Обновить `TransformInterceptor` — распознавать `ApiEnvelopePayload`
|
||
- [x] Проверить сборку (`npm run build -w apps/backend`)
|
||
|
||
## Task 2: Migrate services — ApiEnvelopePayload вместо `{ data, meta }`
|
||
|
||
- [x] SharesService: getMarketData, getDividends, getHistory
|
||
- [x] BondsService: getBond, getMarketData, getHistory
|
||
- [x] CandlesService.getCandles
|
||
- [x] BrokerAccountsService.findAll
|
||
- [x] BrokerPortfolioService.getPortfolio, getPositions
|
||
- [x] BrokerEventsService.getEvents
|
||
- [x] BrokerAnalyticsService.getAnalytics
|
||
- [x] BrokerOperationsService.getOperations
|
||
- [x] Проверить сборку
|
||
|
||
## Task 3: Migrate controllers — plain data returns вместо ручного envelope
|
||
|
||
- [x] SharesController.getShare
|
||
- [x] SecuritiesController.search, screener
|
||
- [x] PortfolioController: все методы
|
||
- [x] AuthController: все методы
|
||
- [x] TBankController: stop ApiResponse wrapping
|
||
- [x] Проверить сборку
|
||
|
||
## Task 4: Update backend tests
|
||
|
||
- [x] tbank.controller.spec.ts — ApiResponse → ApiEnvelopePayload
|
||
- [x] broker-accounts.service.spec.ts — result.meta → result
|
||
- [x] broker-analytics.service.spec.ts
|
||
- [x] broker-events.service.spec.ts
|
||
- [x] broker-portfolio.service.spec.ts
|
||
- [x] broker-operations.service.spec.ts
|
||
- [x] broker-operation-sync.service.spec.ts
|
||
- [x] shares.service.spec.ts
|
||
- [x] securities.service.spec.ts
|
||
- [x] screener.service.spec.ts
|
||
- [x] portfolio.service.spec.ts
|
||
- [x] Запустить `npm test -w apps/backend`
|
||
|
||
## Task 5: HTTP contract tests
|
||
|
||
- [x] Создать `apps/backend/src/envelope-contract.spec.ts` с тестами single envelope
|
||
- [x] Запустить contract tests
|
||
|
||
## Task 6: Simplify frontend normalizeEnvelope
|
||
|
||
- [x] Убрать double-wrap detection из `normalizeEnvelope()`
|
||
- [x] Запустить `npm test -w apps/frontend`
|
||
- [x] Запустить `npm run build -w apps/frontend`
|
||
|
||
## Task 7: Final verification
|
||
|
||
- [ ] `npm test -w apps/backend`
|
||
- [ ] `npm test -w apps/frontend`
|
||
- [ ] `npm run build -w apps/backend`
|
||
- [ ] `npm run build -w apps/frontend`
|
||
- [ ] OpenAPI artifacts check
|
||
- [ ] docs consistency check
|