完成任务3
This commit is contained in:
@@ -5,31 +5,26 @@
|
||||
- [x] 修改 `config.example.yml` 中 `mode` 配置项的注释,保持与 `config.yml` 一致。
|
||||
|
||||
- [x] **2. 控制器辅助函数 (最基础的依赖)**
|
||||
- [x] **`internal/infra/models/execution.go`**
|
||||
- [x] 添加 `ContextAuditStatus` 和 `ContextAuditResultDetails` 常量。
|
||||
- [x] **`internal/app/controller/response.go`**
|
||||
- [x] 将 `*gin.Context` 参数全部替换为 `echo.Context`。
|
||||
- [x] 修改 `SendResponse` 和 `SendErrorResponse` 等函数,使其不再直接写入响应,而是返回 `error`,并在内部调用
|
||||
`c.JSON(...)`。
|
||||
- [x] 修改响应函数,使其返回 `error`。
|
||||
- [x] **新增 `SendErrorWithStatus` 函数**,用于在中间件等场景下发送带有特定HTTP状态码的错误响应。
|
||||
- [x] **重构 `setAuditDetails` 函数**,使其成为统一设置所有审计信息(包括操作状态和结果详情)的唯一入口。
|
||||
- [x] 更新 `SendSuccessWithAudit` 和 `SendErrorWithAudit` 以调用重构后的 `setAuditDetails`。
|
||||
- [x] **`internal/app/controller/auth_utils.go`**
|
||||
- [x] 将 `*gin.Context` 参数全部替换为 `echo.Context`。
|
||||
- [x] 适配 `Get...FromContext` 系列函数,使用 `c.Get("key")` 提取数据。
|
||||
|
||||
- [ ] **3. 中间件 (`internal/app/middleware`)**
|
||||
- [x] **3. 中间件 (`internal/app/middleware`)**
|
||||
- [x] **`auth.go`**
|
||||
- [x] 将 `import "github.com/gin-gonic/gin"` 替换为 `import "github.com/labstack/echo/v4"`。
|
||||
- [x] 将中间件函数签名从 `func AuthMiddleware(...) gin.HandlerFunc` 更新为
|
||||
`func AuthMiddleware(...) echo.MiddlewareFunc`。
|
||||
- [x] 适配中间件内部逻辑,将 `func(c *gin.Context)` 改造为
|
||||
`func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { ... } }` 的结构。
|
||||
- [x] 将 `c.AbortWithStatusJSON(...)` 调用替换为 `return controller.SendErrorResponse(...)`。
|
||||
- [x] 在逻辑正常通过的末尾,调用 `return next(c)`。
|
||||
- [ ] **`audit.go`**
|
||||
- [ ] 将 `import "github.com/gin-gonic/gin"` 替换为 `import "github.com/labstack/echo/v4"`。
|
||||
- [ ] 将中间件函数签名从 `func AuditMiddleware(...) gin.HandlerFunc` 更新为
|
||||
`func AuditMiddleware(...) echo.MiddlewareFunc`。
|
||||
- [ ] 适配中间件内部逻辑,将 `func(c *gin.Context)` 改造为
|
||||
`func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { ... } }` 的结构。
|
||||
- [ ] 在调用 `next(c)` 之前和之后,使用 `c.Get(...)` 来获取和处理审计信息。
|
||||
- [ ] 在逻辑正常通过的末尾,调用 `return next(c)`。
|
||||
- [x] 迁移到 Echo 中间件格式。
|
||||
- [x] **使用 `controller.SendErrorWithStatus`** 在认证失败时返回 `401` 或 `500` HTTP状态码。
|
||||
- [x] **`audit.go`**
|
||||
- [x] **极大简化并迁移到 Echo 中间件格式**。
|
||||
- [x] **移除所有响应体捕获和解析的逻辑** (`bodyLogWriter`, `auditResponse` 等)。
|
||||
- [x] 在 `next(c)` 调用后,**直接从 `echo.Context` 中获取**由 `response.go` 设置好的最终审计状态和结果详情。
|
||||
|
||||
- [ ] **4. 控制器 (`internal/app/controller/...`)**
|
||||
- [ ] **通用修改**:对所有控制器文件执行以下操作:
|
||||
@@ -41,7 +36,8 @@
|
||||
- [ ] 将 `controller.SendResponse(c, ...)` 和 `controller.SendErrorResponse(c, ...)` 调用修改为
|
||||
`return controller.SendResponse(c, ...)` 和 `return controller.SendErrorResponse(c, ...)`。
|
||||
- [ ] **文件清单** (按依赖顺序建议):
|
||||
- [ ] `internal/app/controller/management/controller_helpers.go`
|
||||
- [ ] `internal/app/controller/management/controller_helpers.go` (注意:其中的泛型辅助函数也需要修改为返回
|
||||
`error`)
|
||||
- [ ] `internal/app/controller/device/device_controller.go`
|
||||
- [ ] `internal/app/controller/management/pig_farm_controller.go`
|
||||
- [ ] `internal/app/controller/management/pig_batch_controller.go`
|
||||
|
||||
Reference in New Issue
Block a user