@@ -62,18 +62,23 @@ extension OptimizelyClient {
6262 key: String ,
6363 options: [ OptimizelyDecideOption ] ? = nil ) -> OptimizelyDecision {
6464
65- guard config != nil else {
65+ guard let config = self . config else {
6666 return OptimizelyDecision . errorDecision ( key: key, user: user, error: . sdkNotReady)
6767 }
68+
69+ guard let _ = config. getFeatureFlag ( key: key) else {
70+ return OptimizelyDecision . errorDecision ( key: key, user: user, error: . featureKeyInvalid( key) )
71+ }
6872
6973 let allOptions = defaultDecideOptions + ( options ?? [ ] )
74+ /// Need to remove enable flags
7075 let decisionMap = decide ( user: user, keys: [ key] , options: allOptions)
7176 return decisionMap [ key] ?? OptimizelyDecision . errorDecision ( key: key, user: user, error: . generic)
7277 }
7378
7479 func decide( user: OptimizelyUserContext ,
75- keys: [ String ] ,
76- options: [ OptimizelyDecideOption ] ? = nil ) -> [ String : OptimizelyDecision ] {
80+ keys: [ String ] ,
81+ options: [ OptimizelyDecideOption ] ? = nil ) -> [ String : OptimizelyDecision ] {
7782 guard let config = self . config else {
7883 logger. e ( OptimizelyError . sdkNotReady)
7984 return [ : ]
@@ -85,7 +90,7 @@ extension OptimizelyClient {
8590
8691 var validKeys = [ String] ( )
8792 var flagsWithoutForceDecision = [ FeatureFlag] ( )
88- var flagDecisions = [ String: FeatureDecision] ( )
93+ var flagDecisions = [ String : FeatureDecision] ( )
8994 var decisionReasonMap = [ String : DecisionReasons] ( )
9095
9196 let allOptions = options ?? [ ]
@@ -95,14 +100,15 @@ extension OptimizelyClient {
95100 decisionMap [ key] = OptimizelyDecision . errorDecision ( key: key, user: user, error: . featureKeyInvalid( key) )
96101 continue
97102 }
103+
98104 validKeys. append ( key)
99105
100106 // check forced-decisions first
101- let decisionReasons = DecisionReasons ( options: allOptions)
102107 let forcedDecisionResponse = decisionService. findValidatedForcedDecision ( config: config,
103108 user: user,
104109 context: OptimizelyDecisionContext ( flagKey: key) )
105110
111+ let decisionReasons = DecisionReasons ( options: allOptions)
106112 decisionReasons. merge ( forcedDecisionResponse. reasons)
107113 decisionReasonMap [ key] = decisionReasons
108114
0 commit comments