f
This commit is contained in:
32
internal/domains/api/services/processors/invoke.go
Normal file
32
internal/domains/api/services/processors/invoke.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package processors
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// ProcessorRegistry 已注册处理器查询(由 CombService 实现)
|
||||
type ProcessorRegistry interface {
|
||||
GetProcessor(apiCode string) (ProcessorFunc, bool)
|
||||
}
|
||||
|
||||
// InvokeRegisteredProcessor 通过注册表调用处理器(含白名单包装),聚合处理器内部转接应使用此方法。
|
||||
func InvokeRegisteredProcessor(
|
||||
ctx context.Context,
|
||||
apiCode string,
|
||||
params []byte,
|
||||
deps *ProcessorDependencies,
|
||||
) ([]byte, error) {
|
||||
if deps == nil || deps.CombService == nil {
|
||||
return nil, fmt.Errorf("CombService 未配置,无法调用处理器: %s", apiCode)
|
||||
}
|
||||
registry, ok := deps.CombService.(ProcessorRegistry)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("CombService 不支持 GetProcessor,无法调用处理器: %s", apiCode)
|
||||
}
|
||||
processor, exists := registry.GetProcessor(apiCode)
|
||||
if !exists {
|
||||
return nil, fmt.Errorf("未找到处理器: %s", apiCode)
|
||||
}
|
||||
return processor(ctx, params, deps)
|
||||
}
|
||||
Reference in New Issue
Block a user