Skip to content

Commit b799412

Browse files
[WIP] Refractored vuid logic
1 parent 48f7d8d commit b799412

File tree

4 files changed

+22
-28
lines changed

4 files changed

+22
-28
lines changed

Sources/ODP/OdpManager.swift

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,6 @@ public class OdpManager {
6868
self.odpConfig = OdpConfig()
6969
self.segmentManager.odpConfig = odpConfig
7070
self.eventManager.odpConfig = odpConfig
71-
if enableVuid {
72-
self.eventManager.registerVUID(vuid: self.vuidManager.vuid)
73-
}
74-
7571
}
7672

7773
func fetchQualifiedSegments(userId: String,
@@ -102,17 +98,14 @@ public class OdpManager {
10298
return
10399
}
104100

105-
if enableVuid {
106-
var vuid = vuidManager.vuid
107-
var fsUserId: String? = userId
108-
if OdpVuidManager.isVuid(userId) {
109-
// overwrite if userId is vuid (when userContext is created with vuid)
110-
vuid = userId
111-
fsUserId = nil
112-
}
113-
eventManager.identifyUser(vuid: vuid, userId: fsUserId)
101+
var vuid = vuidManager.vuid
102+
var fsUserId: String? = userId
103+
if OdpVuidManager.isVuid(userId) {
104+
// overwrite if userId is vuid (when userContext is created with vuid)
105+
vuid = userId
106+
fsUserId = nil
114107
}
115-
108+
eventManager.identifyUser(vuid: vuid, userId: fsUserId)
116109
}
117110

118111
/// Send an event to the ODP server.
@@ -134,19 +127,11 @@ public class OdpManager {
134127

135128
var identifiersUpdated = identifiers
136129

137-
if enableVuid {
138-
// add vuid to all events by default
139-
if identifiers[Constants.ODP.keyForVuid] == nil {
140-
identifiersUpdated[Constants.ODP.keyForVuid] = vuidManager.vuid
141-
}
142-
} else {
143-
// remove vuid events
144-
identifiersUpdated[Constants.ODP.keyForVuid] = nil
130+
if identifiers[Constants.ODP.keyForVuid] == nil {
131+
identifiersUpdated[Constants.ODP.keyForVuid] = vuidManager.vuid
145132
}
146133

147-
148134
// replace aliases (fs-user-id, FS_USER_ID, FS-USER-ID) with "fs_user_id".
149-
150135
for (idKey, idValue) in identifiersUpdated {
151136
if idKey == Constants.ODP.keyForUserId { break }
152137

Sources/ODP/OdpVuidManager.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ import Foundation
1818

1919
class OdpVuidManager {
2020
private var _vuid: String = ""
21-
var enabled: Bool
21+
private(set) var enabled: Bool
2222
let logger = OPTLoggerFactory.getLogger()
2323

24-
init(enabled: Bool) {
24+
init(enabled: Bool = false) {
2525
self.enabled = enabled
2626
if enabled {
2727
self._vuid = load()
@@ -52,6 +52,7 @@ extension OdpVuidManager {
5252
if enabled {
5353
return _vuid
5454
} else {
55+
logger.w("VUID is not enabled.")
5556
return ""
5657
}
5758
}

Sources/Optimizely+Decide/OptimizelyClient+Decide.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ extension OptimizelyClient {
3636
/// - Parameter attributes: A map of attribute names to current user attribute values.
3737
/// - Returns: An OptimizelyUserContext associated with this OptimizelyClient
3838
public func createUserContext(attributes: [String: Any]? = nil) -> OptimizelyUserContext? {
39-
guard sdkSettings.enableVuid else {
40-
logger.e("Vuid is not enabled. User context creation failed.")
39+
guard enableVuid, OdpVuidManager.isVuid(vuid) else {
40+
logger.e("Vuid is not enabled or invalid VUID. User context not created.")
4141
return nil
4242
}
4343
return OptimizelyUserContext(optimizely: self, userId: vuid, attributes: attributes)

Sources/Optimizely/OptimizelyClient.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ open class OptimizelyClient: NSObject {
9999
cacheTimeoutInSecs: sdkSettings.segmentsCacheTimeoutInSecs,
100100
timeoutForSegmentFetchInSecs: sdkSettings.timeoutForSegmentFetchInSecs,
101101
timeoutForEventDispatchInSecs: sdkSettings.timeoutForOdpEventInSecs)
102+
103+
if self.odpManager.enableVuid {
104+
self.odpManager.eventManager.registerVUID(vuid: self.odpManager.vuid)
105+
}
102106
let userProfileService = userProfileService ?? DefaultUserProfileService()
103107
let logger = logger ?? DefaultLogger()
104108
type(of: logger).logLevel = defaultLogLevel ?? .info
@@ -976,6 +980,10 @@ extension OptimizelyClient {
976980
return odpManager.vuid
977981
}
978982

983+
public var enableVuid: Bool {
984+
return odpManager.enableVuid
985+
}
986+
979987
func identifyUserToOdp(userId: String) {
980988
odpManager.identifyUser(userId: userId)
981989
}

0 commit comments

Comments
 (0)