|
|
@@ -1,7 +1,7 @@
|
|
|
# Story 005.001: Infrastructure Packages Split
|
|
|
|
|
|
## Status
|
|
|
-Draft
|
|
|
+In Progress - All Business Modules Completed
|
|
|
|
|
|
## Story
|
|
|
**As a** 系统架构师,
|
|
|
@@ -78,14 +78,14 @@ Draft
|
|
|
- [x] 迁移认证中间件(auth.middleware.ts)
|
|
|
- [x] 编写集成测试
|
|
|
|
|
|
-- [ ] 创建 file-module package (AC: 6)
|
|
|
- - [ ] 创建 package.json 配置
|
|
|
- - [ ] 迁移文件实体类(File)
|
|
|
- - [ ] 迁移文件服务类(FileService、MinioService)
|
|
|
- - [ ] 迁移文件相关 Schema 定义
|
|
|
- - [ ] 迁移文件 API 路由
|
|
|
- - [ ] 配置 TypeScript 编译选项(包含 `"composite": true`)
|
|
|
- - [ ] 编写单元测试和集成测试
|
|
|
+- [x] 创建 file-module package (AC: 6)
|
|
|
+ - [x] 创建 package.json 配置
|
|
|
+ - [x] 迁移文件实体类(File)
|
|
|
+ - [x] 迁移文件服务类(FileService、MinioService)
|
|
|
+ - [x] 迁移文件相关 Schema 定义
|
|
|
+ - [x] 迁移文件 API 路由
|
|
|
+ - [x] 配置 TypeScript 编译选项(包含 `"composite": true`)
|
|
|
+ - [x] 编写单元测试和集成测试
|
|
|
- [ ] 配置 pnpm workspace 依赖关系 (AC: 6)
|
|
|
- [ ] 更新根目录 package.json workspace 配置
|
|
|
- [ ] 配置各 package 间的依赖关系
|
|
|
@@ -335,6 +335,7 @@ Draft
|
|
|
| 2025-11-10 | 2.1 | **shared-crud 包完成**:通用 CRUD 服务模式、路由模式和测试全部完成 | Claude Code |
|
|
|
| 2025-11-10 | 2.2 | **user-module 包完成**:用户管理模块(实体、服务、路由、测试)全部完成 | Claude Code |
|
|
|
| 2025-11-10 | 2.3 | **shared-test-util 包完成**:测试基础设施包(集成测试工具、断言工具、生命周期钩子)全部完成 | Claude Code |
|
|
|
+| 2025-11-10 | 2.4 | **file-module 包完成**:文件管理模块(实体、服务、路由、测试)全部完成 | Claude Code |
|
|
|
|
|
|
## Dev Agent Record
|
|
|
*此部分由开发代理在实现过程中填写*
|
|
|
@@ -399,6 +400,19 @@ Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
|
|
|
- ✅ 更新了所有路由文件的中间件导入路径
|
|
|
- ✅ 添加了中间件导出配置到 package.json
|
|
|
- ✅ 所有集成测试通过(16/16 测试)
|
|
|
+- ✅ **file-module 包创建完成**
|
|
|
+ - ✅ 创建 package.json 配置,依赖版本与 packages/server 保持一致
|
|
|
+ - ✅ 迁移文件实体类(File)
|
|
|
+ - ✅ 迁移文件服务类(FileService、MinioService)
|
|
|
+ - ✅ 迁移文件相关 Schema 定义
|
|
|
+ - ✅ 迁移文件 API 路由(上传策略、多部分上传、文件操作等)
|
|
|
+ - ✅ 配置 TypeScript 编译选项(包含 `"composite": true`)
|
|
|
+ - ✅ 编写单元测试和集成测试
|
|
|
+ - ✅ 修复了路由中的认证中间件配置,添加了401状态码响应
|
|
|
+ - ✅ 修复了文件创建后的uploadUser关联加载问题
|
|
|
+ - ✅ 通过mock MinioService解决了测试环境中的MinIO连接问题
|
|
|
+ - ✅ 修复了无效文件数据验证测试,添加了name字段的min(1)验证规则
|
|
|
+ - ✅ 所有集成测试通过(19/19 测试)
|
|
|
|
|
|
### File List
|
|
|
**新增文件:**
|
|
|
@@ -488,12 +502,37 @@ Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
|
|
|
- `packages/shared-test-util/tests/unit/integration-test-db.test.ts` - 集成测试数据库工具测试
|
|
|
- `packages/shared-test-util/tests/unit/integration-test-utils.test.ts` - 集成测试断言工具测试
|
|
|
|
|
|
+**新增文件:**
|
|
|
+- `packages/file-module/package.json` - 包配置
|
|
|
+- `packages/file-module/tsconfig.json` - TypeScript 配置
|
|
|
+- `packages/file-module/vitest.config.ts` - 测试配置
|
|
|
+- `packages/file-module/src/index.ts` - 包入口
|
|
|
+- `packages/file-module/src/entities/index.ts` - 实体导出
|
|
|
+- `packages/file-module/src/entities/file.entity.ts` - 文件实体
|
|
|
+- `packages/file-module/src/services/index.ts` - 服务导出
|
|
|
+- `packages/file-module/src/services/file.service.ts` - 文件服务
|
|
|
+- `packages/file-module/src/services/minio.service.ts` - MinIO服务
|
|
|
+- `packages/file-module/src/schemas/index.ts` - Schema 导出
|
|
|
+- `packages/file-module/src/schemas/file.schema.ts` - 文件 Schema
|
|
|
+- `packages/file-module/src/routes/index.ts` - 路由导出
|
|
|
+- `packages/file-module/src/routes/upload-policy/post.ts` - 上传策略路由
|
|
|
+- `packages/file-module/src/routes/multipart-policy/post.ts` - 多部分上传策略路由
|
|
|
+- `packages/file-module/src/routes/multipart-complete/post.ts` - 完成多部分上传路由
|
|
|
+- `packages/file-module/src/routes/[id]/get.ts` - 获取文件详情路由
|
|
|
+- `packages/file-module/src/routes/[id]/get-url.ts` - 获取文件URL路由
|
|
|
+- `packages/file-module/src/routes/[id]/download.ts` - 文件下载路由
|
|
|
+- `packages/file-module/src/routes/[id]/delete.ts` - 删除文件路由
|
|
|
+- `packages/file-module/tests/integration/file.routes.integration.test.ts` - 文件路由API集成测试
|
|
|
+- `packages/file-module/tests/utils/integration-test-db.ts` - 集成测试数据库工具
|
|
|
+- `packages/file-module/tests/utils/integration-test-utils.ts` - 集成测试断言工具
|
|
|
+
|
|
|
**依赖关系:**
|
|
|
- shared-utils 依赖 shared-types
|
|
|
- shared-crud 依赖 shared-types 和 shared-utils
|
|
|
- shared-test-util 依赖 shared-utils
|
|
|
- user-module 依赖 shared-types、shared-utils 和 shared-crud
|
|
|
- auth-module 依赖 shared-types、shared-utils 和 user-module
|
|
|
+- file-module 依赖 shared-types、shared-utils 和 shared-crud
|
|
|
- auth-module 提供认证中间件供其他模块使用
|
|
|
- 所有业务模块的测试依赖 shared-test-util
|
|
|
- 所有外部依赖版本与 packages/server 完全一致
|