Skip to content

Commit de0b533

Browse files
committed
Send site credentials to JetpackErrorViewModel
1 parent 8605ae7 commit de0b533

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

WooCommerce/Classes/Authentication/AuthenticationManager.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,9 @@ private extension AuthenticationManager {
553553
with credentials: AuthenticatorCredentials,
554554
in navigationController: UINavigationController,
555555
onDismiss: @escaping () -> Void) {
556-
let viewModel = JetpackErrorViewModel(siteURL: siteURL, onJetpackSetupCompletion: { [weak self] authorizedEmailAddress in
556+
let viewModel = JetpackErrorViewModel(siteURL: siteURL,
557+
siteCredentials: credentials.wporg,
558+
onJetpackSetupCompletion: { [weak self] authorizedEmailAddress in
557559
guard let self = self else { return }
558560
// Resets the referenced site since the setup completed now.
559561
self.currentSelfHostedSite = nil
@@ -589,7 +591,9 @@ private extension AuthenticationManager {
589591
/// without Jetpack in the site discovery flow
590592
///
591593
func jetpackErrorUI(for siteURL: String, with matcher: ULAccountMatcher, in navigationController: UINavigationController) -> UIViewController {
592-
let viewModel = JetpackErrorViewModel(siteURL: siteURL, onJetpackSetupCompletion: { [weak self] authorizedEmailAddress in
594+
let viewModel = JetpackErrorViewModel(siteURL: siteURL,
595+
siteCredentials: nil,
596+
onJetpackSetupCompletion: { [weak self] authorizedEmailAddress in
593597
guard let self = self else { return }
594598

595599
// Tries re-syncing to get an updated store list

WooCommerce/Classes/Authentication/Navigation Exceptions/JetpackErrorViewModel.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,18 @@ import WordPressUI
88
/// an error when Jetpack is not installed or is not connected
99
struct JetpackErrorViewModel: ULErrorViewModel {
1010
private let siteURL: String
11+
private let siteCredentials: WordPressOrgCredentials?
1112
private let analytics: Analytics
1213
private let jetpackSetupCompletionHandler: (String?) -> Void
1314
private let authentication: Authentication
1415

1516
init(siteURL: String?,
17+
siteCredentials: WordPressOrgCredentials?,
1618
analytics: Analytics = ServiceLocator.analytics,
1719
authentication: Authentication = ServiceLocator.authenticationManager,
1820
onJetpackSetupCompletion: @escaping (String?) -> Void) {
1921
self.siteURL = siteURL ?? Localization.yourSite
22+
self.siteCredentials = siteCredentials
2023
self.analytics = analytics
2124
self.authentication = authentication
2225
self.jetpackSetupCompletionHandler = onJetpackSetupCompletion
@@ -62,7 +65,10 @@ struct JetpackErrorViewModel: ULErrorViewModel {
6265
return
6366
}
6467

65-
let viewModel = JetpackSetupWebViewModel(siteURL: siteURL, analytics: analytics, onCompletion: jetpackSetupCompletionHandler)
68+
let viewModel = JetpackSetupWebViewModel(siteURL: siteURL,
69+
siteCredentials: siteCredentials,
70+
analytics: analytics,
71+
onCompletion: jetpackSetupCompletionHandler)
6672
let connectionController = AuthenticatedWebViewController(viewModel: viewModel)
6773
viewController.navigationController?.show(connectionController, sender: nil)
6874
}

WooCommerce/Classes/Authentication/Navigation Exceptions/JetpackSetupWebViewModel.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
import Foundation
22
import WebKit
3+
import WordPressAuthenticator
34

45
/// View model used for the web view controller to install Jetpack the plugin during the login flow.
56
///
67
final class JetpackSetupWebViewModel: AuthenticatedWebViewModel {
78

9+
// Site credentials if available
10+
let wporgCredentials: WordPressOrgCredentials?
11+
812
/// The site URL to set up Jetpack for.
913
private let siteURL: String
1014
private let analytics: Analytics
@@ -15,8 +19,12 @@ final class JetpackSetupWebViewModel: AuthenticatedWebViewModel {
1519
/// The email address that the user uses to authorize Jetpack
1620
private var authorizedEmailAddress: String?
1721

18-
init(siteURL: String, analytics: Analytics = ServiceLocator.analytics, onCompletion: @escaping (String?) -> Void) {
22+
init(siteURL: String,
23+
siteCredentials: WordPressOrgCredentials?,
24+
analytics: Analytics = ServiceLocator.analytics,
25+
onCompletion: @escaping (String?) -> Void) {
1926
self.siteURL = siteURL
27+
self.wporgCredentials = siteCredentials
2028
self.analytics = analytics
2129
self.completionHandler = onCompletion
2230
}

0 commit comments

Comments
 (0)