@@ -70,15 +70,23 @@ extension OptimizelyClient {
70
70
return OptimizelyDecision . errorDecision ( key: key, user: user, error: . featureKeyInvalid( key) )
71
71
}
72
72
73
- let allOptions = defaultDecideOptions + ( options ?? [ ] )
74
- /// Need to remove enable flags
75
- let decisionMap = decide ( user: user, keys: [ key] , options: allOptions)
73
+ var allOptions = defaultDecideOptions + ( options ?? [ ] )
74
+ allOptions. removeAll ( where: { $0 == . enabledFlagsOnly } )
75
+
76
+ let decisionMap = decide ( user: user, keys: [ key] , options: allOptions, ignoreDefaultOptions: true )
76
77
return decisionMap [ key] ?? OptimizelyDecision . errorDecision ( key: key, user: user, error: . generic)
77
78
}
78
79
79
80
func decide( user: OptimizelyUserContext ,
80
81
keys: [ String ] ,
81
82
options: [ OptimizelyDecideOption ] ? = nil ) -> [ String : OptimizelyDecision ] {
83
+ return decide ( user: user, keys: keys, options: options, ignoreDefaultOptions: false )
84
+ }
85
+
86
+ func decide( user: OptimizelyUserContext ,
87
+ keys: [ String ] ,
88
+ options: [ OptimizelyDecideOption ] ? = nil ,
89
+ ignoreDefaultOptions: Bool ) -> [ String : OptimizelyDecision ] {
82
90
guard let config = self . config else {
83
91
logger. e ( OptimizelyError . sdkNotReady)
84
92
return [ : ]
@@ -93,7 +101,7 @@ extension OptimizelyClient {
93
101
var flagDecisions = [ String : FeatureDecision] ( )
94
102
var decisionReasonMap = [ String : DecisionReasons] ( )
95
103
96
- let allOptions = options ?? [ ]
104
+ let allOptions = ignoreDefaultOptions ? ( options ?? [ ] ) : defaultDecideOptions + ( options ?? [ ] )
97
105
98
106
for key in keys {
99
107
guard let flags = config. getFeatureFlag ( key: key) else {
0 commit comments