Skip to content

Commit 1ea00fb

Browse files
WIP: cleanup
1 parent 826d7b4 commit 1ea00fb

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

Sources/Implementation/DefaultDecisionService.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,16 @@ class DefaultDecisionService: OPTDecisionService {
218218
user: OptimizelyUserContext,
219219
options: [OptimizelyDecideOption]? = nil) -> DecisionResponse<FeatureDecision> {
220220

221-
guard let response = getVariationForFeatureList(config: config, featureFlags: [featureFlag], user: user, options: options).first else {
222-
let reasons = DecisionReasons(options: options)
221+
let response = getVariationForFeatureList(config: config, featureFlags: [featureFlag], user: user, options: options).first
222+
223+
guard response?.result != nil else {
224+
let reasons = response?.reasons ?? DecisionReasons(options: options)
223225
return DecisionResponse(result: nil, reasons: reasons)
224226
}
225227

226-
return response
228+
return response!
229+
230+
227231

228232
// // Evaluate in this order:
229233
//
@@ -285,6 +289,8 @@ class DefaultDecisionService: OPTDecisionService {
285289

286290
if let decision = decisionResponse.result {
287291
decisions.append(DecisionResponse(result: decision, reasons: reasons))
292+
} else {
293+
decisions.append(DecisionResponse(result: nil, reasons: reasons))
288294
}
289295
}
290296

Sources/Optimizely+Decide/OptimizelyClient+Decide.swift

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,17 +123,16 @@ extension OptimizelyClient {
123123
let decisionList = (decisionService as? DefaultDecisionService)?.getVariationForFeatureList(config: config, featureFlags: flagsWithoutForceDecision, user: user, options: allOptions)
124124

125125
for index in 0..<flagsWithoutForceDecision.count {
126-
if decisionList?.indices.contains(index) ?? false,
127-
let decision = decisionList?[index],
128-
let result = decision.result {
126+
if decisionList?.indices.contains(index) ?? false {
127+
let decision = decisionList?[index]
128+
let result = decision?.result
129129
let flagKey = flagsWithoutForceDecision[index].key
130130
flagDecisions[flagKey] = result
131131
let _reasons = decisionReasonMap[flagKey]
132-
_reasons?.merge(decision.reasons)
133-
decisionReasonMap[flagKey] = _reasons
134-
135-
} else {
136-
logger.e("Decsion not found in decisionList")
132+
if decision?.reasons != nil {
133+
_reasons?.merge(decision!.reasons)
134+
decisionReasonMap[flagKey] = _reasons
135+
}
137136
}
138137
}
139138

0 commit comments

Comments
 (0)