更新处理器
This commit is contained in:
53
internal/domains/api/services/processors/tianyuan_proxy.go
Normal file
53
internal/domains/api/services/processors/tianyuan_proxy.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package processors
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
|
||||
"hyapi-server/internal/infrastructure/external/tianyuanapi"
|
||||
)
|
||||
|
||||
// CallTianyuanByProduct 将处理器入参 JSON 转发至天远平台对应产品(使用天远侧产品编号)
|
||||
func CallTianyuanByProduct(ctx context.Context, deps *ProcessorDependencies, productCode string, params []byte) ([]byte, error) {
|
||||
if deps == nil || deps.TianyuanapiService == nil {
|
||||
return nil, errors.Join(ErrSystem, errors.New("天远 API 服务未配置"))
|
||||
}
|
||||
|
||||
var paramsMap map[string]interface{}
|
||||
if err := json.Unmarshal(params, ¶msMap); err != nil {
|
||||
return nil, errors.Join(ErrSystem, err)
|
||||
}
|
||||
|
||||
respBytes, err := deps.TianyuanapiService.CallAPI(ctx, productCode, paramsMap)
|
||||
if err != nil {
|
||||
if errors.Is(err, tianyuanapi.ErrNotFound) {
|
||||
return nil, errors.Join(ErrNotFound, err)
|
||||
}
|
||||
if errors.Is(err, tianyuanapi.ErrDatasource) {
|
||||
return nil, errors.Join(ErrDatasource, err)
|
||||
}
|
||||
if errors.Is(err, tianyuanapi.ErrSystem) {
|
||||
return nil, errors.Join(ErrSystem, err)
|
||||
}
|
||||
return nil, errors.Join(ErrSystem, err)
|
||||
}
|
||||
return respBytes, nil
|
||||
}
|
||||
|
||||
// MapTianyuanError 将天远服务错误映射为处理器层错误(直接调用 CallAPI 时使用)
|
||||
func MapTianyuanError(err error) error {
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
if errors.Is(err, tianyuanapi.ErrNotFound) {
|
||||
return errors.Join(ErrNotFound, err)
|
||||
}
|
||||
if errors.Is(err, tianyuanapi.ErrDatasource) {
|
||||
return errors.Join(ErrDatasource, err)
|
||||
}
|
||||
if errors.Is(err, tianyuanapi.ErrSystem) {
|
||||
return errors.Join(ErrSystem, err)
|
||||
}
|
||||
return errors.Join(ErrSystem, err)
|
||||
}
|
||||
Reference in New Issue
Block a user