Skip to content

Commit dcc24fb

Browse files
committed
chore: add default details as an enum. adds return type to createVariableEventMetaData function
1 parent 7e54524 commit dcc24fb

File tree

4 files changed

+23
-13
lines changed

4 files changed

+23
-13
lines changed

DevCycle/DVCVariable.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public class DVCVariable<T> {
6363
+ "String / Boolean / NSNumber / Int / NSDictionary")
6464
self.value = defaultValue
6565
self.isDefaulted = true
66-
self.eval = EvalReason.defaultReason(details: "Invalid Variable Type")
66+
self.eval = EvalReason.defaultReason(details: DVCDefaultDetails.invalidVariableType.rawValue)
6767
}
6868

6969
addNotificationObserver()
@@ -85,7 +85,7 @@ public class DVCVariable<T> {
8585
)
8686
self.value = defaultValue
8787
self.isDefaulted = true
88-
self.eval = EvalReason.defaultReason(details: "Invalid Variable Type")
88+
self.eval = EvalReason.defaultReason(details: DVCDefaultDetails.invalidVariableType.rawValue)
8989
addNotificationObserver()
9090
return
9191
}
@@ -96,7 +96,7 @@ public class DVCVariable<T> {
9696
Log.warn("Variable \(variable.key) does not match type of default value \(T.self))")
9797
self.value = defaultValue
9898
defaulted = true
99-
self.eval = EvalReason.defaultReason(details: "Variable Type Mismatch")
99+
self.eval = EvalReason.defaultReason(details: DVCDefaultDetails.variableTypeMismatch.rawValue)
100100
}
101101

102102
self.isDefaulted = defaulted
@@ -118,7 +118,7 @@ public class DVCVariable<T> {
118118
}
119119
} else {
120120
Log.warn("Variable \(variable.key) does not match type of default value \(T.self))")
121-
self.eval = EvalReason.defaultReason(details: "Variable Type Mismatch")
121+
self.eval = EvalReason.defaultReason(details: DVCDefaultDetails.variableTypeMismatch.rawValue)
122122
}
123123
}
124124

@@ -133,14 +133,14 @@ public class DVCVariable<T> {
133133
self.handler?(value)
134134
} else if !self.isDefaulted {
135135
self.isDefaulted = true
136-
self.eval = EvalReason.defaultReason(details: "User Not Targeted")
136+
self.eval = EvalReason.defaultReason(details: DVCDefaultDetails.userNotTargeted.rawValue)
137137
}
138138
}
139139

140140
private func resetToDefault() {
141141
self.value = self.defaultValue
142142
self.isDefaulted = true
143-
self.eval = EvalReason.defaultReason(details: "User Not Targeted")
143+
self.eval = EvalReason.defaultReason(details: DVCDefaultDetails.userNotTargeted.rawValue)
144144
}
145145

146146
private func addNotificationObserver() {

DevCycle/DevCycleClient.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ public class DevCycleClient {
381381
key: key,
382382
value: nil,
383383
defaultValue: defaultValue,
384-
eval: EvalReason.defaultReason(details: "Invalid Variable Key")
384+
eval: EvalReason.defaultReason(details: DVCDefaultDetails.invalidVariableKey.rawValue)
385385
)
386386
}
387387

@@ -406,7 +406,7 @@ public class DevCycleClient {
406406
key: key,
407407
value: nil,
408408
defaultValue: defaultValue,
409-
eval: EvalReason.defaultReason(details: "User Not Targeted")
409+
eval: EvalReason.defaultReason(details: DVCDefaultDetails.userNotTargeted.rawValue)
410410
)
411411
}
412412

@@ -416,19 +416,22 @@ public class DevCycleClient {
416416

417417
if !self.closed && !self.disableAutomaticEventLogging {
418418
self.eventQueue.updateAggregateEvents(
419-
variableKey: variable.key, variableIsDefaulted: variable.isDefaulted, metadata: createVariableEventMetaData(variableEval: variable.eval))
419+
variableKey: variable.key,
420+
variableIsDefaulted: variable.isDefaulted,
421+
metadata: createVariableEventMetaData(variableEval: variable.eval
422+
))
420423
}
421424

422425
return variable
423426
}
424427
}
425428

426-
private func createVariableEventMetaData(variableEval: EvalReason?) -> [String: Any]? {
429+
private func createVariableEventMetaData(variableEval: EvalReason?) -> [String: [String: String]]? {
427430
if let eval = variableEval {
428431
if let targetId = eval.targetId {
429-
return ["eval": ["reason": eval.reason, "details": eval.details, "target_id": targetId]]
432+
return ["eval": ["reason": eval.reason, "details": eval.details ?? "", "target_id": targetId]]
430433
}
431-
return ["eval": ["reason": eval.reason, "details": eval.details]]
434+
return ["eval": ["reason": eval.reason, "details": eval.details ?? ""]]
432435
}
433436
return nil
434437
}

DevCycle/Models/UserConfig.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,3 +233,10 @@ public struct EvalReason {
233233
return EvalReason(reason: "DEFAULT", details: details)
234234
}
235235
}
236+
237+
internal enum DVCDefaultDetails: String {
238+
case userNotTargeted = "User Not Targeted"
239+
case invalidVariableKey = "Invalid Variable Key"
240+
case invalidVariableType = "Invalid Variable Type"
241+
case variableTypeMismatch = "Variable Type Mismatch"
242+
}

DevCycle/ObjC/ObjCDevCycleClient.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ public class ObjCDevCycleClient: NSObject {
189189
key: key,
190190
value: nil,
191191
defaultValue: defaultValue,
192-
eval: EvalReason.defaultReason(details: "User Not Targeted")
192+
eval: EvalReason.defaultReason(details: DVCDefaultDetails.userNotTargeted.rawValue)
193193
)
194194
)
195195
}

0 commit comments

Comments
 (0)