Skip to content

Commit 59dc0a9

Browse files
committed
edit and create migration functions
1 parent 158f8c6 commit 59dc0a9

File tree

2 files changed

+31
-17
lines changed

2 files changed

+31
-17
lines changed

swift-sdk/Internal/IterableUserDefaults.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class IterableUserDefaults {
8282
try? save(dict: payload, withKey: .payload, andExpiration: expiration)
8383
}
8484

85-
func getLastPushPayloadAndExpirationPair() -> (payload: [AnyHashable: Any]?, expiration: Date?)? {
85+
func getLastPushPayloadExpirationPairForMigration() -> (payload: [AnyHashable: Any]?, expiration: Date?)? {
8686
guard let encodedEnvelope = userDefaults.value(forKey: UserDefaultsKey.payload.value) as? Data else {
8787
return nil
8888
}
@@ -97,7 +97,11 @@ class IterableUserDefaults {
9797
}
9898
}
9999

100-
// create migration function for email, userId, authToken here
100+
func getAuthDataForMigration() -> (email: String?, userId: String?, authToken: String?) {
101+
102+
103+
return (email: nil, userId: nil, authToken: nil)
104+
}
101105

102106
// MARK: Private implementation
103107

swift-sdk/Internal/LocalStorage.swift

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -99,35 +99,45 @@ struct LocalStorage: LocalStorageProtocol {
9999
private let keychain: IterableKeychain
100100

101101
private func moveAuthDataFromUserDefaultsToKeychain() {
102-
// in the future, use the migration function from IterableUserDefaults like with the last push payload
102+
let (userDefaultEmail, userDefaultUserId, userDefaultAuthToken) = iterableUserDefaults.getAuthDataForMigration()
103103

104-
if let userDefaultAuthToken = iterableUserDefaults.authToken, keychain.authToken == nil {
105-
keychain.authToken = userDefaultAuthToken
106-
iterableUserDefaults.authToken = nil
104+
if let userDefaultEmail = userDefaultEmail {
105+
if keychain.email == nil {
106+
keychain.email = userDefaultEmail
107+
}
107108

108-
ITBInfo("UPDATED: moved authToken from UserDefaults to IterableKeychain")
109-
}
110-
111-
if let userDefaultEmail = iterableUserDefaults.email, keychain.email == nil {
112-
keychain.email = userDefaultEmail
113109
iterableUserDefaults.email = nil
114110

115-
ITBInfo("UPDATED: moved email from UserDefaults to IterableKeychain")
111+
ITBInfo("UPDATED: migrated email from UserDefaults to IterableKeychain")
116112
}
117113

118-
if let userDefaultUserId = iterableUserDefaults.userId, keychain.userId == nil {
119-
keychain.userId = userDefaultUserId
114+
if let userDefaultUserId = userDefaultUserId {
115+
if keychain.userId == nil {
116+
keychain.userId = userDefaultUserId
117+
}
118+
120119
iterableUserDefaults.userId = nil
121120

122-
ITBInfo("UPDATED: moved userId from UserDefaults to IterableKeychain")
121+
ITBInfo("UPDATED: migrated userId from UserDefaults to IterableKeychain")
122+
}
123+
124+
if let userDefaultAuthToken = userDefaultAuthToken {
125+
if keychain.authToken == nil {
126+
keychain.authToken = userDefaultAuthToken
127+
}
128+
129+
iterableUserDefaults.authToken = nil
130+
131+
ITBInfo("UPDATED: migrated authToken from UserDefaults to IterableKeychain")
123132
}
124133
}
125134

126135
private func moveLastPushPayloadFromUserDefaultsToKeychain() {
127-
if let (userDefaultLastPushPayload, expiration) = iterableUserDefaults.getLastPushPayloadAndExpirationPair() {
136+
if let (userDefaultLastPushPayload, expiration) = iterableUserDefaults.getLastPushPayloadExpirationPairForMigration() {
128137
keychain.setLastPushPayload(userDefaultLastPushPayload, withExpiration: expiration)
138+
iterableUserDefaults.save(payload: nil, withExpiration: nil)
129139

130-
ITBInfo("UPDATED: moved lastPushPayload from UserDefaults to IterableKeychain")
140+
ITBInfo("UPDATED: migrated lastPushPayload from UserDefaults to IterableKeychain")
131141
}
132142
}
133143
}

0 commit comments

Comments
 (0)