Implement new ClientBuilder pattern for login (#120)

* Implement new ClientBuilder pattern for login

* Add changelog
This commit is contained in:
Anderas
2022-06-30 08:10:59 +01:00
committed by GitHub
parent 7bd4763662
commit dd739d4766
7 changed files with 27 additions and 17 deletions
@@ -108,10 +108,14 @@ class AuthenticationCoordinator: Coordinator {
delegate?.authenticationCoordinatorDidStartLoading(self)
let basePath = userSessionStore.baseDirectoryPath(for: username)
let loginTask = Task.detached {
try loginNewClient(basePath: basePath,
username: username,
password: password)
let builder = ClientBuilder()
.basePath(path: basePath)
.username(username: username)
let loginTask: Task<Client, Error> = Task.detached {
let client = try builder.build()
try client.login(username: username, password: password)
return client
}
switch await loginTask.result {
@@ -78,9 +78,14 @@ class UserSessionStore: UserSessionStoreProtocol {
Benchmark.startTrackingForIdentifier("Login", message: "Started restoring previous login")
let basePath = baseDirectoryPath(for: usernameTokenTuple.username)
let loginTask = Task.detached {
try loginWithToken(basePath: basePath,
restoreToken: usernameTokenTuple.accessToken)
let builder = ClientBuilder()
.basePath(path: basePath)
.username(username: usernameTokenTuple.username)
let loginTask: Task<Client, Error> = Task.detached {
let client = try builder.build()
try client.restoreLogin(restoreToken: usernameTokenTuple.accessToken)
return client
}
switch await loginTask.result {