Skip to content

Commit 761154b

Browse files
author
Evan Greer
committed
updates user update saving logic
1 parent 1a4cc8a commit 761154b

File tree

1 file changed

+17
-22
lines changed

1 file changed

+17
-22
lines changed

swift-sdk/Internal/AnonymousUserManager.swift

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,9 @@ public class AnonymousUserManager: AnonymousUserManagerProtocol {
218218
}
219219

220220
if type == EventType.updateUser {
221-
processAndStoreUserUpdate(data: data, shouldOverWrite: shouldOverWrite)
221+
processAndStoreUserUpdate(data: data)
222222
} else {
223-
processAndStoreEvent(type: type, data: data, shouldOverWrite: shouldOverWrite)
223+
processAndStoreEvent(type: type, data: data)
224224
}
225225

226226
if let criteriaId = evaluateCriteriaAndReturnID() {
@@ -229,32 +229,27 @@ public class AnonymousUserManager: AnonymousUserManagerProtocol {
229229
}
230230

231231
// Stores User Update data
232-
private func processAndStoreUserUpdate(data: [AnyHashable: Any], shouldOverWrite: Bool) {
233-
if shouldOverWrite, var userUpdate = localStorage.anonymousUserUpdate {
234-
userUpdate = userUpdate.merging(data) { (_, new) in new }
235-
} else {
236-
var newEventData = data
237-
newEventData.setValue(for: JsonKey.eventType, value: EventType.updateUser)
238-
newEventData.setValue(for: JsonKey.eventTimeStamp, value: IterableUtil.secondsFromEpoch(for: dateProvider.currentDate)) // this we use as unique idenfier too
239-
240-
localStorage.anonymousUserUpdate = newEventData
241-
}
232+
private func processAndStoreUserUpdate(data: [AnyHashable: Any]) {
233+
var userUpdate = localStorage.anonymousUserUpdate ?? [:]
234+
235+
// Merge new data into userUpdate
236+
userUpdate.merge(data) { (_, new) in new }
237+
238+
userUpdate.setValue(for: JsonKey.eventType, value: EventType.updateUser)
239+
userUpdate.setValue(for: JsonKey.eventTimeStamp, value: IterableUtil.secondsFromEpoch(for: dateProvider.currentDate))
240+
241+
localStorage.anonymousUserUpdate = userUpdate
242242
}
243243

244244
// Stores all other event data
245-
private func processAndStoreEvent(type: String, data: [AnyHashable: Any], shouldOverWrite: Bool) {
245+
private func processAndStoreEvent(type: String, data: [AnyHashable: Any]) {
246246
var eventsDataObjects: [[AnyHashable: Any]] = localStorage.anonymousUserEvents ?? []
247247

248-
if shouldOverWrite, let indexToUpdate = eventsDataObjects.firstIndex(where: { $0[JsonKey.eventType] as? String == type }) {
249-
let dataToUpdate = eventsDataObjects[indexToUpdate]
250-
eventsDataObjects[indexToUpdate] = dataToUpdate.merging(data) { (_, new) in new }
251-
} else {
252-
var newEventData = data
253-
newEventData.setValue(for: JsonKey.eventType, value: type)
254-
newEventData.setValue(for: JsonKey.eventTimeStamp, value: IterableUtil.secondsFromEpoch(for: dateProvider.currentDate)) // this we use as unique idenfier too
248+
var newEventData = data
249+
newEventData.setValue(for: JsonKey.eventType, value: type)
250+
newEventData.setValue(for: JsonKey.eventTimeStamp, value: IterableUtil.secondsFromEpoch(for: dateProvider.currentDate)) // this we use as unique idenfier too
255251

256-
eventsDataObjects.append(newEventData)
257-
}
252+
eventsDataObjects.append(newEventData)
258253

259254
if eventsDataObjects.count > config.eventThresholdLimit {
260255
eventsDataObjects = eventsDataObjects.suffix(config.eventThresholdLimit)

0 commit comments

Comments
 (0)