package haiyuapi import ( "tyapi-server/internal/config" "tyapi-server/internal/shared/external_logger" ) // NewHaiyuapiServiceWithConfig 使用配置创建海宇 API 服务 func NewHaiyuapiServiceWithConfig(cfg *config.Config) (*HaiyuapiService, error) { loggingConfig := external_logger.ExternalServiceLoggingConfig{ Enabled: cfg.Haiyuapi.Logging.Enabled, LogDir: cfg.Haiyuapi.Logging.LogDir, ServiceName: "haiyuapi", UseDaily: cfg.Haiyuapi.Logging.UseDaily, EnableLevelSeparation: cfg.Haiyuapi.Logging.EnableLevelSeparation, LevelConfigs: make(map[string]external_logger.ExternalServiceLevelFileConfig), } for k, v := range cfg.Haiyuapi.Logging.LevelConfigs { loggingConfig.LevelConfigs[k] = external_logger.ExternalServiceLevelFileConfig{ MaxSize: v.MaxSize, MaxBackups: v.MaxBackups, MaxAge: v.MaxAge, Compress: v.Compress, } } var logger *external_logger.ExternalServiceLogger var err error if loggingConfig.Enabled { logger, err = external_logger.NewExternalServiceLogger(loggingConfig) if err != nil { return nil, err } } timeout := defaultRequestTimeout if cfg.Haiyuapi.Timeout > 0 { timeout = cfg.Haiyuapi.Timeout } serviceCfg := HaiyuapiConfig{ BaseURL: cfg.Haiyuapi.BaseURL, AccessID: cfg.Haiyuapi.AccessID, SecretKey: cfg.Haiyuapi.SecretKey, Timeout: timeout, } return NewHaiyuapiService(serviceCfg, logger), nil }