session-ios/SignalMessaging/Loki/Migrations/LK002RemoveFriendRequests.s...

30 lines
1023 B
Swift

@objc
public class LK002RemoveFriendRequests : OWSDatabaseMigration {
@objc
class func migrationId() -> String {
return "002"
}
override public func runUp(completion: @escaping OWSDatabaseMigrationCompletion) {
self.doMigrationAsync(completion: completion)
}
private func doMigrationAsync(completion: @escaping OWSDatabaseMigrationCompletion) {
DispatchQueue.global().async {
Storage.writeSync { transaction in
var interactionIDsToRemove: [String] = []
transaction.enumerateRows(inCollection: TSInteraction.collection()) { key, object, _, _ in
if !(object is TSInteraction) {
interactionIDsToRemove.append(key)
}
}
interactionIDsToRemove.forEach { transaction.removeObject(forKey: $0, inCollection: TSInteraction.collection()) }
self.save(with: transaction)
}
completion()
}
}
}