Skip to content

Commit 3a4be02

Browse files
fix: vuid as client property
1 parent 1f0b770 commit 3a4be02

File tree

3 files changed

+29
-24
lines changed

3 files changed

+29
-24
lines changed

Sources/ODP/OdpEventManager.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,11 @@ open class OdpEventManager {
5858
data: [:])
5959
}
6060

61-
func identifyUser(vuid: String, userId: String?) {
62-
var identifiers = [Constants.ODP.keyForVuid: vuid]
61+
func identifyUser(vuid: String?, userId: String?) {
62+
var identifiers = [String: String]()
63+
if let _vuid = vuid, VuidManager.isVuid(_vuid) {
64+
identifiers[Constants.ODP.keyForVuid] = _vuid
65+
}
6366
if let userId = userId {
6467
identifiers[Constants.ODP.keyForUserId] = userId
6568
}
@@ -69,7 +72,7 @@ open class OdpEventManager {
6972
identifiers: identifiers,
7073
data: [:])
7174
}
72-
75+
7376
func sendEvent(type: String, action: String, identifiers: [String: String], data: [String: Any?]) {
7477
let event = OdpEvent(type: type,
7578
action: action,

Sources/ODP/OdpManager.swift

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,14 @@ public class OdpManager {
9191
logger.d("ODP identify event is not dispatched (ODP not integrated).")
9292
return
9393
}
94-
95-
var vuid = VuidManager.shared.vuid
96-
var fsUserId: String? = userId
94+
9795
if VuidManager.isVuid(userId) {
9896
// overwrite if userId is vuid (when userContext is created with vuid)
99-
vuid = userId
100-
fsUserId = nil
97+
eventManager.identifyUser(vuid: userId, userId: nil)
98+
} else {
99+
eventManager.identifyUser(vuid: self.vuid, userId: userId)
101100
}
102101

103-
eventManager.identifyUser(vuid: vuid, userId: fsUserId)
104102
}
105103

106104
/// Send an event to the ODP server.

Sources/Optimizely/OptimizelyClient.swift

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ open class OptimizelyClient: NSObject {
6060
var decisionService: OPTDecisionService!
6161
public var notificationCenter: OPTNotificationCenter?
6262
public var odpManager: OdpManager!
63-
private var vuidManager: VuidManager!
63+
// private var vuidManager: VuidManager!
64+
public var vuid: String?
6465
let sdkSettings: OptimizelySdkSettings
6566

6667
// MARK: - Public interfaces
@@ -92,15 +93,18 @@ open class OptimizelyClient: NSObject {
9293
self.defaultDecideOptions = defaultDecideOptions ?? []
9394

9495
super.init()
95-
self.vuidManager = VuidManager.shared
96-
self.vuidManager.configure(enable: self.sdkSettings.enableVuid)
96+
VuidManager.shared.configure(enable: self.sdkSettings.enableVuid)
97+
if VuidManager.shared.enable {
98+
self.vuid = VuidManager.shared.vuid
99+
}
100+
97101
self.odpManager = odpManager ?? OdpManager(sdkKey: sdkKey,
98102
disable: sdkSettings.disableOdp,
99103
cacheSize: sdkSettings.segmentsCacheSize,
100104
cacheTimeoutInSecs: sdkSettings.segmentsCacheTimeoutInSecs,
101105
timeoutForSegmentFetchInSecs: sdkSettings.timeoutForSegmentFetchInSecs,
102106
timeoutForEventDispatchInSecs: sdkSettings.timeoutForOdpEventInSecs)
103-
self.odpManager.vuid = self.vuidManager.vuid
107+
104108
let userProfileService = userProfileService ?? DefaultUserProfileService()
105109
let logger = logger ?? DefaultLogger()
106110
type(of: logger).logLevel = defaultLogLevel ?? .info
@@ -118,11 +122,11 @@ open class OptimizelyClient: NSObject {
118122
self.decisionService = HandlerRegistryService.shared.injectDecisionService(sdkKey: self.sdkKey)
119123
self.notificationCenter = HandlerRegistryService.shared.injectNotificationCenter(sdkKey: self.sdkKey)
120124

121-
if vuidManager.enable {
125+
if let _vuid = vuid {
122126
try? sendOdpEvent(type: Constants.ODP.eventType,
123127
action: "client_initialized",
124128
identifiers: [
125-
Constants.ODP.keyForVuid: vuidManager.vuid
129+
Constants.ODP.keyForVuid: _vuid
126130
],
127131
data: [:])
128132

@@ -983,15 +987,15 @@ extension OptimizelyClient {
983987
data: data)
984988
}
985989

986-
/// the device vuid (read only)
987-
public var vuid: String? {
988-
return self.vuidManager.vuid
989-
}
990-
991-
public var enableVuid: Bool {
992-
return self.vuidManager.enable
993-
}
994-
990+
// /// the device vuid (read only)
991+
// public var vuid: String? {
992+
// return self.vuidManager.vuid
993+
// }
994+
//
995+
// public var enableVuid: Bool {
996+
// return self.vuidManager.enable
997+
// }
998+
//
995999
func identifyUserToOdp(userId: String) {
9961000
odpManager.identifyUser(userId: userId)
9971001
}

0 commit comments

Comments
 (0)