60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
|
|
# T022 — API converters 與未實作保護
|
|||
|
|
|
|||
|
|
> Status: `done`
|
|||
|
|
> Milestone: `M2`
|
|||
|
|
> Est. change: `~160 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
完成後,Run domain 能完整轉成公開型別,並以 JWT、輸入驗證及測試固定 T020 的未實作保護。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T021
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- 讀取 / 依賴:
|
|||
|
|
- 檔案:`apps/backend/internal/types/m5_convert.go`、`apps/backend/internal/logic/scout/*run*_logic.go`
|
|||
|
|
- 既有能力 / API:response.Biz、middleware.UIDFrom、Pagination
|
|||
|
|
- Spec 段落:§5.1、§7
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
### 程式變更(預期路徑)
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/backend/internal/types/m5_convert.go` | edit | 新增 Run/RunID/pagination converters。 |
|
|||
|
|
| `apps/backend/internal/logic/scout/list_scout_runs_logic.go` | edit | 加入 JWT 與 page/filter 驗證,保留明確 503 待 T034 替換。 |
|
|||
|
|
| `apps/backend/internal/logic/scout/list_scout_run_posts_logic.go` | edit | 加入 JWT、run ID 與 page 驗證,保留明確 503。 |
|
|||
|
|
| `apps/backend/internal/logic/scout/remove_scout_run_logic.go` | edit | 加入 JWT 與 run ID 驗證,保留明確 503。 |
|
|||
|
|
| `apps/backend/internal/types/m5_convert_test.go` | add/edit | 驗證公開欄位與 unix ns 原樣傳遞。 |
|
|||
|
|
|
|||
|
|
### 行為變更
|
|||
|
|
|
|||
|
|
- 未接 persistence 的新端點回 503xxx;舊端點不受影響。
|
|||
|
|
|
|||
|
|
### API / 契約(若有)
|
|||
|
|
|
|||
|
|
- 不回 owner_uid、provider token、payload 或內部錯誤堆疊。
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- 不實作實際列表、刪除或 job 建立。
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [x] converter 覆蓋所有 run counters 與 shortfall reasons。
|
|||
|
|
- [ ] 指令:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/backend && go test ./internal/types ./internal/logic/scout/... -count=1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
驗收結果:types 與 Scout logic 測試通過。
|
|||
|
|
|
|||
|
|
## Notes
|
|||
|
|
|
|||
|
|
T034 必須移除暫時 503 並用真 usecase 結果取代。
|