Skip to content

Commit

Permalink
Avoid logging in and back out for 814 fix because logout randomly fai…
Browse files Browse the repository at this point in the history
…ls sometimes.
  • Loading branch information
mplorentz committed Sep 7, 2022
1 parent 3dac9e8 commit 15464f3
Showing 1 changed file with 35 additions and 32 deletions.
67 changes: 35 additions & 32 deletions Source/Controller/Fix814AccountsHelper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,47 +34,48 @@ enum Fix814AccountsHelper {
return nil
}

try await bot.login(config: configuration)
let db = ViewDatabase()
try db.open(path: try configuration.databaseDirectory(), user: configuration.identity)

// Check if account was created on the test network between the given dates.
guard configuration.network == Environment.Networks.test.key,
let identityCreationDate = try? bot.database.currentUserCreatedDate(),
let identityCreationDate = try? db.currentUserCreatedDate(),
identityCreationDate > Date(timeIntervalSince1970: 1_661_265_000), // 2022-08-23 10:30am
identityCreationDate < Date(timeIntervalSince1970: 1_662_587_210), // 2022-09-07
let publishedMessages = try? bot.database.publishedMessagesForCurrentUser() else {
try await bot.logout()
return nil
}

Log.info("Prompting for 814 fix. Found \(publishedMessages.count) published messages")

try await bot.logout()

// Confirm with the user
defer {
identityCreationDate < Date(timeIntervalSince1970: 1_662_587_210) else { // 2022-09-07
db.close()
userDefaults.set(true, forKey: hasPromptedKey)
userDefaults.synchronize()
}
let confirmed = await appController.confirm(
message: Text.confirmCopyToMainNetwork.text
)
if !confirmed {
let secondConfirm = await appController.confirm(
message: Text.confirmSkipCopyToMainNetwork.text,
cancelTitle: Text.yes.text,
confirmTitle: Text.no.text
)
if !secondConfirm {
Log.info("User opted out of 814 fix")
Analytics.shared.trackDidSkip814Fix()
return nil
}
return nil
}

Log.info("User opted into 814 fix")
Analytics.shared.trackDidStart814Fix()

do {
// Confirm with the user
let confirmed = await appController.confirm(
message: Text.confirmCopyToMainNetwork.text
)
if !confirmed {
let secondConfirm = await appController.confirm(
message: Text.confirmSkipCopyToMainNetwork.text,
cancelTitle: Text.yes.text,
confirmTitle: Text.no.text
)
if !secondConfirm {
Log.info("User opted out of 814 fix")
Analytics.shared.trackDidSkip814Fix()
userDefaults.set(true, forKey: hasPromptedKey)
userDefaults.synchronize()
return nil
}
}

Log.info("User opted into 814 fix")
Analytics.shared.trackDidStart814Fix()

let publishedMessages = try db.publishedMessagesForCurrentUser()
db.close()
Log.info("Prompting for 814 fix.")
Log.info("Found \(publishedMessages.count) published messages")

// create new configuration on the main network
let newConfiguration = AppConfiguration(with: configuration.secret)
newConfiguration.name = configuration.name + "-814fixed"
Expand All @@ -95,6 +96,8 @@ enum Fix814AccountsHelper {

newConfiguration.apply()

userDefaults.set(true, forKey: hasPromptedKey)
userDefaults.synchronize()
Log.info("814 fix complete.")
Analytics.shared.trackDidComplete814Fix()
return newConfiguration
Expand Down

0 comments on commit 15464f3

Please sign in to comment.