@@ -299,12 +299,7 @@ func setupInMemoryFactory(
299299
300300 isProxy := splitAPI .SplitFetcher .IsProxy ()
301301
302- fallbackTreatmentConf := dtos.FallbackTreatmentConfig {}
303- if cfg .Advanced .FallbackTreatment != nil {
304- fallbackTreatmentConf .GlobalFallbackTreatment = conf .SanitizeGlobalFallbackTreatment (cfg .Advanced .FallbackTreatment .GlobalFallbackTreatment , logger )
305- fallbackTreatmentConf .ByFlagFallbackTreatment = conf .SanitizeByFlagFallBackTreatment (cfg .Advanced .FallbackTreatment .ByFlagFallbackTreatment , logger )
306- }
307- fallbackTreatmentCalculator := dtos .NewFallbackTreatmentCalculatorImp (& fallbackTreatmentConf )
302+ fallbackTreatmentCalculator := createFallbackTreatmentCalculator (cfg .Advanced .FallbackTreatment , logger )
308303
309304 evaluator := evaluator .NewEvaluator (splitsStorage , segmentsStorage , ruleBasedSegmentStorage , nil , engine .NewEngine (logger ), logger , cfg .Advanced .FeatureFlagRules , cfg .Advanced .RuleBasedSegmentRules , fallbackTreatmentCalculator )
310305 ruleBuilder := grammar .NewRuleBuilder (segmentsStorage , ruleBasedSegmentStorage , nil , cfg .Advanced .FeatureFlagRules , cfg .Advanced .RuleBasedSegmentRules , logger , evaluator )
@@ -448,13 +443,6 @@ func setupRedisFactory(apikey string, cfg *conf.SplitSdkConfig, logger logging.L
448443
449444 syncManager := synchronizer .NewSynchronizerManagerRedis (syncImpl , logger )
450445
451- fallbackTreatmentConf := dtos.FallbackTreatmentConfig {}
452- if cfg .Advanced .FallbackTreatment != nil {
453- fallbackTreatmentConf .GlobalFallbackTreatment = conf .SanitizeGlobalFallbackTreatment (cfg .Advanced .FallbackTreatment .GlobalFallbackTreatment , logger )
454- fallbackTreatmentConf .ByFlagFallbackTreatment = conf .SanitizeByFlagFallBackTreatment (cfg .Advanced .FallbackTreatment .ByFlagFallbackTreatment , logger )
455- }
456- fallbackTreatmentCalculator := dtos .NewFallbackTreatmentCalculatorImp (& fallbackTreatmentConf )
457-
458446 factory := & SplitFactory {
459447 startTime : time .Now ().UTC (),
460448 apikey : apikey ,
@@ -467,7 +455,7 @@ func setupRedisFactory(apikey string, cfg *conf.SplitSdkConfig, logger logging.L
467455 telemetrySync : telemetry .NewSynchronizerRedis (telemetryStorage , logger ),
468456 impressionManager : impressionManager ,
469457 syncManager : syncManager ,
470- fallbackTreatmentCalculator : fallbackTreatmentCalculator ,
458+ fallbackTreatmentCalculator : createFallbackTreatmentCalculator ( cfg . Advanced . FallbackTreatment , logger ) ,
471459 }
472460 factory .status .Store (sdkStatusInitializing )
473461 setFactory (factory .apikey , factory .logger )
@@ -532,13 +520,6 @@ func setupLocalhostFactory(
532520 return nil , err
533521 }
534522
535- fallbackTreatmentConf := dtos.FallbackTreatmentConfig {}
536- if cfg .Advanced .FallbackTreatment != nil {
537- fallbackTreatmentConf .GlobalFallbackTreatment = conf .SanitizeGlobalFallbackTreatment (cfg .Advanced .FallbackTreatment .GlobalFallbackTreatment , logger )
538- fallbackTreatmentConf .ByFlagFallbackTreatment = conf .SanitizeByFlagFallBackTreatment (cfg .Advanced .FallbackTreatment .ByFlagFallbackTreatment , logger )
539- }
540- fallbackTreatmentCalculator := dtos .NewFallbackTreatmentCalculatorImp (& fallbackTreatmentConf )
541-
542523 splitFactory := & SplitFactory {
543524 startTime : time .Now ().UTC (),
544525 apikey : apikey ,
@@ -558,7 +539,7 @@ func setupLocalhostFactory(
558539 readinessSubscriptors : make (map [int ]chan int ),
559540 syncManager : syncManager ,
560541 telemetrySync : & telemetry.NoOp {},
561- fallbackTreatmentCalculator : fallbackTreatmentCalculator ,
542+ fallbackTreatmentCalculator : createFallbackTreatmentCalculator ( cfg . Advanced . FallbackTreatment , logger ) ,
562543 }
563544 splitFactory .status .Store (sdkStatusInitializing )
564545
@@ -622,3 +603,12 @@ func printWarnings(logger logging.LoggerInterface, errs []error) {
622603 }
623604 }
624605}
606+
607+ func createFallbackTreatmentCalculator (fallbackTreatmentConfig * dtos.FallbackTreatmentConfig , logger logging.LoggerInterface ) dtos.FallbackTreatmentCalculator {
608+ fallbackTreatmentConf := dtos.FallbackTreatmentConfig {}
609+ if fallbackTreatmentConfig != nil {
610+ fallbackTreatmentConf .GlobalFallbackTreatment = conf .SanitizeGlobalFallbackTreatment (fallbackTreatmentConfig .GlobalFallbackTreatment , logger )
611+ fallbackTreatmentConf .ByFlagFallbackTreatment = conf .SanitizeByFlagFallBackTreatment (fallbackTreatmentConfig .ByFlagFallbackTreatment , logger )
612+ }
613+ return dtos .NewFallbackTreatmentCalculatorImp (& fallbackTreatmentConf )
614+ }
0 commit comments