package yuyuecha import ( "path/filepath" "tyapi-server/internal/config" "tyapi-server/internal/shared/external_logger" ) // NewYuyuechaServiceWithConfig 使用配置创建愉悦查服务 func NewYuyuechaServiceWithConfig(cfg *config.Config) (*YuyuechaService, error) { loggingConfig := external_logger.ExternalServiceLoggingConfig{ Enabled: cfg.Yuyuecha.Logging.Enabled, LogDir: cfg.Yuyuecha.Logging.LogDir, ServiceName: "yuyuecha", UseDaily: cfg.Yuyuecha.Logging.UseDaily, EnableLevelSeparation: cfg.Yuyuecha.Logging.EnableLevelSeparation, LevelConfigs: make(map[string]external_logger.ExternalServiceLevelFileConfig), } for k, v := range cfg.Yuyuecha.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.Yuyuecha.Timeout > 0 { timeout = cfg.Yuyuecha.Timeout } logDir := cfg.Yuyuecha.Logging.LogDir if logDir == "" { logDir = "logs/external_services" } serviceCfg := ServiceConfig{ BaseURL: cfg.Yuyuecha.BaseURL, ClientID: cfg.Yuyuecha.ClientID, ClientSecret: cfg.Yuyuecha.ClientSecret, Timeout: timeout, Debug: cfg.App.IsDevelopment(), DebugLogDir: filepath.Join(logDir, "yuyuecha"), } return NewYuyuechaService(serviceCfg, logger), nil }