Skip to content

Commit

Permalink
fixup! evaluate against flatten of context
Browse files Browse the repository at this point in the history
  • Loading branch information
vahidlazio committed Apr 16, 2024
1 parent 0843ac3 commit cb4379e
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
2 changes: 1 addition & 1 deletion Sources/Confidence/ConfidenceValueHash.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func hashValue(value: ConfidenceValue, hasher: inout some HashFunction) {
hashValue(value: listValue, hasher: &hasher)
}
case .timestamp:
hasher.update(data: value.asDateComponents()!.date!.data)
hasher.update(data: value.asDate()!.data)
case .structure:
value.asStructure()!.sorted { $0.key < $1.key }.forEach { key, structureValue in
hasher.update(data: key.data)
Expand Down
11 changes: 4 additions & 7 deletions Sources/ConfidenceProvider/ConfidenceFeatureProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -262,16 +262,16 @@ public class ConfidenceFeatureProvider: FeatureProvider {
throw OpenFeatureError.invalidContextError
}

let contextHash = ConfidenceTypeMapper.from(ctx: ctx).flattenOpenFeature().hash()
let context = confidence?.getContext().flattenOpenFeature() ?? ConfidenceTypeMapper.from(ctx: ctx)

do {
let resolverResult = try resolver.resolve(flag: path.flag, contextHash: contextHash)
let resolverResult = try resolver.resolve(flag: path.flag, contextHash: context.hash())

guard let value = resolverResult.resolvedValue.value else {
return resolveFlagNoValue(
defaultValue: defaultValue,
resolverResult: resolverResult,
ctx: ctx
ctx: context
)
}

Expand All @@ -288,7 +288,6 @@ public class ConfidenceFeatureProvider: FeatureProvider {

processResultForApply(
resolverResult: resolverResult,
ctx: ctx,
applyTime: Date.backport.now
)
return evaluationResult
Expand All @@ -303,14 +302,13 @@ public class ConfidenceFeatureProvider: FeatureProvider {
}
}

private func resolveFlagNoValue<T>(defaultValue: T, resolverResult: ResolveResult, ctx: EvaluationContext)
private func resolveFlagNoValue<T>(defaultValue: T, resolverResult: ResolveResult, ctx: ConfidenceStruct)
-> ProviderEvaluation<T>
{
switch resolverResult.resolvedValue.resolveReason {
case .noMatch:
processResultForApply(
resolverResult: resolverResult,
ctx: ctx,
applyTime: Date.backport.now)
return ProviderEvaluation(
value: defaultValue,
Expand Down Expand Up @@ -403,7 +401,6 @@ public class ConfidenceFeatureProvider: FeatureProvider {

private func processResultForApply(
resolverResult: ResolveResult?,
ctx: OpenFeature.EvaluationContext?,
applyTime: Date
) {
guard let resolverResult = resolverResult, let resolveToken = resolverResult.resolveToken else {
Expand Down

0 comments on commit cb4379e

Please sign in to comment.