Skip to content

Commit

Permalink
Some minor cleanup in AppAuthOAuthClient
Browse files Browse the repository at this point in the history
  • Loading branch information
mohannad-hassan committed Dec 25, 2024
1 parent 9b0d1d1 commit 6edbdc9
Showing 1 changed file with 17 additions and 30 deletions.
47 changes: 17 additions & 30 deletions Data/OAuthClient/Sources/AppAuthOAuthClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public final class AppAuthOAuthClient: OAuthClient {
}
guard let configuration else {
// This should not happen
logger.error("Error fetching OAuth configuration: no cofniguration was loaded. An unexpected situtation.")
logger.error("Error fetching OAuth configuration: no configuration was loaded. An unexpected situtation.")
continuation.resume(throwing: OAuthClientError.errorFetchingConfiguration(nil))
return
}
Expand Down Expand Up @@ -85,39 +85,26 @@ public final class AppAuthOAuthClient: OAuthClient {

logger.info("Starting OAuth flow")
try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<Void, any Error>) in
fire(loginRequest: request, on: viewController) { state, error in
guard error == nil else {
logger.error("Error authenticating: \(error!)")
continuation.resume(throwing: OAuthClientError.errorAuthenticating(error))
return
}
guard let _ = state else {
logger.error("Error authenticating: no state returned. An unexpected situtation.")
continuation.resume(throwing: OAuthClientError.errorAuthenticating(nil))
return
}
logger.info("OAuth flow completed successfully")
continuation.resume()
}
}
}

/// Executes the request on the main actor.
private func fire(
loginRequest: OIDAuthorizationRequest,
on viewController: UIViewController,
callback: @escaping OIDAuthStateAuthorizationCallback
) {
Task {
await MainActor.run {
authFlow = OIDAuthState.authState(
byPresenting: loginRequest,
DispatchQueue.main.async {
self.authFlow = OIDAuthState.authState(
byPresenting: request,
presenting: viewController
) { [weak self] state, error in
self?.authFlow = nil
callback(state, error)
guard error == nil else {
logger.error("Error authenticating: \(error!)")
continuation.resume(throwing: OAuthClientError.errorAuthenticating(error))
return
}
guard let _ = state else {
logger.error("Error authenticating: no state returned. An unexpected situtation.")
continuation.resume(throwing: OAuthClientError.errorAuthenticating(nil))
return
}
logger.info("OAuth flow completed successfully")
continuation.resume()
}
}
}
}
}
}

0 comments on commit 6edbdc9

Please sign in to comment.