2.3 KiB
Raw Blame History

API Envelope Runtime Contract — Tasks

Task 1: Добавить ApiEnvelopePayload и обновить TransformInterceptor

  • Добавить ApiEnvelopePayload<T> класс в api-response.dto.ts
  • Обновить TransformInterceptor — распознавать ApiEnvelopePayload
  • Проверить сборку (npm run build -w apps/backend)

Task 2: Migrate services — ApiEnvelopePayload вместо { data, meta }

  • SharesService: getMarketData, getDividends, getHistory
  • BondsService: getBond, getMarketData, getHistory
  • CandlesService.getCandles
  • BrokerAccountsService.findAll
  • BrokerPortfolioService.getPortfolio, getPositions
  • BrokerEventsService.getEvents
  • BrokerAnalyticsService.getAnalytics
  • BrokerOperationsService.getOperations
  • Проверить сборку

Task 3: Migrate controllers — plain data returns вместо ручного envelope

  • SharesController.getShare
  • SecuritiesController.search, screener
  • PortfolioController: все методы
  • AuthController: все методы
  • TBankController: stop ApiResponse wrapping
  • Проверить сборку

Task 4: Update backend tests

  • tbank.controller.spec.ts — ApiResponse → ApiEnvelopePayload
  • broker-accounts.service.spec.ts — result.meta → result
  • broker-analytics.service.spec.ts
  • broker-events.service.spec.ts
  • broker-portfolio.service.spec.ts
  • broker-operations.service.spec.ts
  • broker-operation-sync.service.spec.ts
  • shares.service.spec.ts
  • securities.service.spec.ts
  • screener.service.spec.ts
  • portfolio.service.spec.ts
  • Запустить npm test -w apps/backend

Task 5: HTTP contract tests

  • Создать apps/backend/src/envelope-contract.spec.ts с тестами single envelope
  • Запустить contract tests

Task 6: Simplify frontend normalizeEnvelope

  • Убрать double-wrap detection из normalizeEnvelope()
  • Запустить npm test -w apps/frontend
  • Запустить 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