Skip to content
Snippets Groups Projects
Commit 2346a778 authored by Bruno Muniz's avatar Bruno Muniz :apple:
Browse files

Continued with migration

parent a66f5e20
No related branches found
No related tags found
1 merge request!66Using new client wrapper
...@@ -456,6 +456,7 @@ let package = Package( ...@@ -456,6 +456,7 @@ let package = Package(
.product(name: "DifferenceKit", package: "DifferenceKit"), .product(name: "DifferenceKit", package: "DifferenceKit"),
.product(name: "ScrollViewController", package: "ScrollViewController"), .product(name: "ScrollViewController", package: "ScrollViewController"),
.product(name: "XXClient", package: "elixxir-dapps-sdk-swift"), .product(name: "XXClient", package: "elixxir-dapps-sdk-swift"),
.product(name: "XXMessengerClient", package: "elixxir-dapps-sdk-swift"),
] ]
), ),
.testTarget( .testTarget(
......
...@@ -284,7 +284,8 @@ extension PasswordStorage { ...@@ -284,7 +284,8 @@ extension PasswordStorage {
) )
return PasswordStorage( return PasswordStorage(
save: { password in keychain[data: "password"] = password}, save: { password in keychain[data: "password"] = password},
load: { try keychain[data: "password"] ?? { throw MissingPasswordError() }() } load: { try keychain[data: "password"] ?? { throw MissingPasswordError() }() },
remove: { try keychain.remove("password") }
) )
}() }()
} }
...@@ -10,6 +10,7 @@ public enum KeychainSFTP: String { ...@@ -10,6 +10,7 @@ public enum KeychainSFTP: String {
public protocol KeychainHandling { public protocol KeychainHandling {
func clear() throws func clear() throws
func getPassword() throws -> Data? func getPassword() throws -> Data?
func remove(_ key: String) throws
func store(password pwd: Data) throws func store(password pwd: Data) throws
func get(key: KeychainSFTP) throws -> String? func get(key: KeychainSFTP) throws -> String?
...@@ -24,6 +25,10 @@ public struct KeychainHandler: KeychainHandling { ...@@ -24,6 +25,10 @@ public struct KeychainHandler: KeychainHandling {
self.keychain = Keychain(service: "XXM") self.keychain = Keychain(service: "XXM")
} }
public func remove(_ key: String) throws {
try keychain.remove(key)
}
public func clear() throws { public func clear() throws {
try keychain.removeAll() try keychain.removeAll()
} }
......
...@@ -4,6 +4,7 @@ public struct MockKeychainHandler: KeychainHandling { ...@@ -4,6 +4,7 @@ public struct MockKeychainHandler: KeychainHandling {
public init() {} public init() {}
public func clear() throws {} public func clear() throws {}
public func remove(_ key: String) throws {}
public func store(password pwd: Data) throws {} public func store(password pwd: Data) throws {}
public func getPassword() throws -> Data? { Data() } public func getPassword() throws -> Data? { Data() }
public func get(key: KeychainSFTP) throws -> String? { nil } public func get(key: KeychainSFTP) throws -> String? { nil }
......
...@@ -4,6 +4,7 @@ import Models ...@@ -4,6 +4,7 @@ import Models
import Combine import Combine
import Defaults import Defaults
import XXModels import XXModels
import XXLogger
import Keychain import Keychain
import Foundation import Foundation
import Permissions import Permissions
...@@ -106,6 +107,10 @@ final class LaunchViewModel { ...@@ -106,6 +107,10 @@ final class LaunchViewModel {
_ = try SetLogLevel.live(.trace) _ = try SetLogLevel.live(.trace)
RegisterLogWriter.live(.init(handle: {
XXLogger.live().debug($0)
}))
guard let certPath = Bundle.module.path(forResource: "cmix.rip", ofType: "crt"), guard let certPath = Bundle.module.path(forResource: "cmix.rip", ofType: "crt"),
let contactFilePath = Bundle.module.path(forResource: "udContact", ofType: "bin") else { let contactFilePath = Bundle.module.path(forResource: "udContact", ofType: "bin") else {
fatalError("Couldn't retrieve alternative UD credentials") fatalError("Couldn't retrieve alternative UD credentials")
...@@ -175,6 +180,11 @@ final class LaunchViewModel { ...@@ -175,6 +180,11 @@ final class LaunchViewModel {
roundURL: "https://www.google.com.br", roundURL: "https://www.google.com.br",
fileTransferId: nil fileTransferId: nil
)) ))
if var contact = try? self.database.fetchContacts(.init(id: [$0.sender])).first {
contact.isRecent = false
try! self.database.saveContact(contact)
}
}) })
) )
...@@ -221,7 +231,8 @@ final class LaunchViewModel { ...@@ -221,7 +231,8 @@ final class LaunchViewModel {
} }
} }
} catch { } catch {
print(">>> Initialization couldn't be completed: \(error.localizedDescription)") let xxError = CreateUserFriendlyErrorMessage.live(error.localizedDescription)
hudSubject.send(.error(.init(content: xxError)))
} }
} }
......
<xxc(2)TMJw0XHBSzVPUAo/ZsAuD5DiOF1RH8uxZxUHW2KG9PYDkAZiB9kZo+Dl3a+leHJP1aP7KQtifEOGqQAxsBnOtd2nIe3/jw//LDqs8mZcL8wsMydDoFwycEZQIHg85L17q6u3pRMXcSfvFLBuL6H2HxP+U3Sox9YTgaPNK191opr14t03jfM7gaBcdbk9PE/hwUeotu3eTavqy4lFNIa917wZCDf+n9aGz9jB2q/axf0x+h0h1uVQD6xaAJD5gqyvCmECU/iCaYCbPUh+zFfSEymujIFWscZAJL6ocPn9DCYw80mbKpm0BDQRBm+EVqo4KVMsLqbx0hJJ8Vh5a8c9f+aiBXjlwnZJ2Z8DzxbsVg7VzJc5sn5Dl0ajrkzBdZBWbgOJEgN7nIdmb3gW7poVUR1JtRIctW3wS+7/qHmLZC1SQ+x3O+eEFmb5HrulsvsUkIkFKRPQguwql9HLDA00zqg5tuDzy5yqyP//xZY4SelSTMDO/pkOMP921LaXsRzBWMGCRWa/uzaDhIgnXVs2cyxM1K5jLwQml44QWAxxTGBX/EhYpMbHLAn4+QAAAgA7Nv4tnMt8oC0Ffog/appCEA==xxc> <xxc(2)7mbKFLE201WzH4SGxAOpHjjehwztIV+KGifi5L/PYPcDkAZiB9kZo+Dl3Vc7dD2SdZCFMOJVgwqGzfYRDkjc8RGEllBqNxq2sRRX09iQVef0kJQUgJCHNCOcvm6Ki0JJwvjLceyFh36iwK8oLbhLgqEZY86UScdACTyBCzBIab3ob5mBthYc3mheV88yq5PGF2DQ+dEvueUm+QhOSfwzppAJA/rpW9Wq9xzYcQzaqc3ztAGYfm2BBAHS7HVmkCbvZ/K07Xrl4EBPGHJYq12tWAN/C3mcbbBYUOQXyEzbSl/mO7sL3ORr0B4FMuqCi8EdlD6RO52pVhY+Cg6roRH1t5Ng1JxPt8Mv1yyjbifPhZ5fLKwxBz8UiFORfk0/jnhwgm25LRHqtNRRUlYXLvhv0HhqyYTUt17WNtCLATSVbqLrFGdy2EGadn8mP+kQNHp93f27d/uHgBNNe7LpuYCJMdWpoG6bOqmHEftxt0/MIQA8fTtTm3jJzv+7/QjZJDvQIv0SNdp8HFogpuwde+GuS4BcY7v5xz+ArGWcRR63ct2z83MqQEn9ODr1/gAAAgA7szRpDDQIdFUQo9mkWg8xBA==xxc>
\ No newline at end of file
...@@ -8,10 +8,12 @@ import Foundation ...@@ -8,10 +8,12 @@ import Foundation
import XXMessengerClient import XXMessengerClient
import DependencyInjection import DependencyInjection
import Retry import Retry
import XXModels
final class AccountDeleteViewModel { final class AccountDeleteViewModel {
@Dependency var messenger: Messenger @Dependency var messenger: Messenger
@Dependency var keychain: KeychainHandling @Dependency var keychain: KeychainHandling
@Dependency var database: Database
@KeyObject(.username, defaultValue: nil) var username: String? @KeyObject(.username, defaultValue: nil) var username: String?
...@@ -35,10 +37,20 @@ final class AccountDeleteViewModel { ...@@ -35,10 +37,20 @@ final class AccountDeleteViewModel {
guard let self = self else { return } guard let self = self else { return }
do { do {
print(">>> try self.cleanUD()")
try self.cleanUD() try self.cleanUD()
try self.stopNetwork()
print(">>> try self.messenger.destroy()")
try self.messenger.destroy() try self.messenger.destroy()
print(">>> try self.keychain.clear()")
try self.keychain.clear() try self.keychain.clear()
print(">>> try database.drop()")
try self.database.drop()
print(">>> try self.deleteDatabase()")
try self.deleteDatabase() try self.deleteDatabase()
UserDefaults.resetStandardUserDefaults() UserDefaults.resetStandardUserDefaults()
...@@ -69,22 +81,6 @@ final class AccountDeleteViewModel { ...@@ -69,22 +81,6 @@ final class AccountDeleteViewModel {
try messenger.ud.get()!.permanentDeleteAccount(username: fact) try messenger.ud.get()!.permanentDeleteAccount(username: fact)
} }
private func stopNetwork() throws {
let cMix = messenger.cMix.get()!
print(">>> Stopping network follower...")
try cMix.stopNetworkFollower()
retry(max: 10, retryStrategy: .delay(seconds: 2)) {
if cMix.networkFollowerStatus() != .stopped {
print(">>> Network still hasn't stopped. Its \(cMix.networkFollowerStatus())")
throw NSError.create("Gave up on stopping the network.")
}
print(">>> Network has stopped")
}
}
private func deleteDatabase() throws { private func deleteDatabase() throws {
print(">>> Deleting database...") print(">>> Deleting database...")
......
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
"location" : "https://git.xx.network/elixxir/elixxir-dapps-sdk-swift", "location" : "https://git.xx.network/elixxir/elixxir-dapps-sdk-swift",
"state" : { "state" : {
"branch" : "development", "branch" : "development",
"revision" : "8e3717558823ea713fd6b516cc2fcbef01d003ed" "revision" : "15a7ab035a7c0b9031cf0fa977563b3a1a254647"
} }
}, },
{ {
...@@ -319,8 +319,8 @@ ...@@ -319,8 +319,8 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-collections", "location" : "https://github.com/apple/swift-collections",
"state" : { "state" : {
"revision" : "48254824bb4248676bf7ce56014ff57b142b77eb", "revision" : "f504716c27d2e5d4144fa4794b12129301d17729",
"version" : "1.0.2" "version" : "1.0.3"
} }
}, },
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment