refactor: 将 OpType 字段从枚举类型改为 string 类型
主要变更: - Operation.OpType: Type → string - NewFullOperation 参数: opType Type → opType string - IsValidOpType 参数: opType Type → opType string - operationMeta.OpType: *Type → *string - queryclient.ListRequest.OpType: model.Type → string 优点: - 更灵活,支持动态扩展操作类型 - 不再受限于预定义的枚举常量 - 简化类型转换逻辑 兼容性: - Type 常量定义保持不变 (OpTypeCreate, OpTypeUpdate 等) - 使用时需要 string() 转换: string(model.OpTypeCreate) - 所有单元测试已更新并通过 (100%) 测试结果: ✅ api/adapter - PASS ✅ api/highclient - PASS ✅ api/logger - PASS ✅ api/model - PASS ✅ api/persistence - PASS ✅ api/queryclient - PASS ✅ internal/* - PASS
This commit is contained in:
@@ -40,7 +40,7 @@ func (r *OperationRecord) ToModel() *model.Operation {
|
||||
RequestBodyHash: &r.RequestBodyHash,
|
||||
ResponseBodyHash: &r.ResponseBodyHash,
|
||||
OpSource: model.Source(r.OpSource),
|
||||
OpType: model.Type(r.OpType),
|
||||
OpType: r.OpType,
|
||||
DoPrefix: r.DOPrefix,
|
||||
DoRepository: r.DORepository,
|
||||
ClientIP: r.ClientIP,
|
||||
|
||||
@@ -726,7 +726,7 @@ func createE2ETestOperations(count int) []*model.Operation {
|
||||
OpID: fmt.Sprintf("e2e-op-%d-%d", timestamp, i),
|
||||
Timestamp: time.Now(),
|
||||
OpSource: model.OpSourceDOIP,
|
||||
OpType: model.OpTypeCreate,
|
||||
OpType: string(model.OpTypeCreate),
|
||||
DoPrefix: "e2e-test",
|
||||
DoRepository: "e2e-repo",
|
||||
Doid: fmt.Sprintf("e2e/test/%d", i),
|
||||
|
||||
@@ -57,7 +57,7 @@ func Example_dbOnly() {
|
||||
// 5. 构造 Operation(包含 IP 信息)
|
||||
op, err := model.NewFullOperation(
|
||||
model.OpSourceDOIP,
|
||||
model.OpTypeCreate,
|
||||
string(model.OpTypeCreate),
|
||||
"10.1000",
|
||||
"my-repo",
|
||||
"10.1000/my-repo/doc001",
|
||||
@@ -139,7 +139,7 @@ func Example_dbAndTrustlog() {
|
||||
// 5. 构造 Operation
|
||||
op, err := model.NewFullOperation(
|
||||
model.OpSourceDOIP,
|
||||
model.OpTypeCreate,
|
||||
string(model.OpTypeCreate),
|
||||
"10.1000",
|
||||
"my-repo",
|
||||
"10.1000/my-repo/doc002",
|
||||
@@ -212,7 +212,7 @@ func Example_trustlogOnly() {
|
||||
// 5. 构造 Operation
|
||||
op, err := model.NewFullOperation(
|
||||
model.OpSourceDOIP,
|
||||
model.OpTypeCreate,
|
||||
string(model.OpTypeCreate),
|
||||
"10.1000",
|
||||
"my-repo",
|
||||
"10.1000/my-repo/doc003",
|
||||
@@ -278,7 +278,7 @@ func Example_mysqlDatabase() {
|
||||
// 5. 构造并发布 Operation
|
||||
op, err := model.NewFullOperation(
|
||||
model.OpSourceDOIP,
|
||||
model.OpTypeCreate,
|
||||
string(model.OpTypeCreate),
|
||||
"10.1000",
|
||||
"my-repo",
|
||||
"10.1000/my-repo/doc004",
|
||||
@@ -349,7 +349,7 @@ func Example_sqliteDatabase() {
|
||||
// 5. 构造并发布 Operation
|
||||
op, err := model.NewFullOperation(
|
||||
model.OpSourceDOIP,
|
||||
model.OpTypeCreate,
|
||||
string(model.OpTypeCreate),
|
||||
"10.1000",
|
||||
"my-repo",
|
||||
"10.1000/my-repo/doc005",
|
||||
|
||||
@@ -44,7 +44,7 @@ func setupTestDB(t *testing.T) *sql.DB {
|
||||
func createTestOperation(t *testing.T, opID string) *model.Operation {
|
||||
op, err := model.NewFullOperation(
|
||||
model.OpSourceDOIP,
|
||||
model.OpTypeCreate,
|
||||
string(model.OpTypeCreate),
|
||||
"10.1000",
|
||||
"test-repo",
|
||||
"10.1000/test-repo/"+opID,
|
||||
|
||||
Reference in New Issue
Block a user