Skip to content

Commit d2fe925

Browse files
committed
Read order payment link from order entity
1 parent 6584d1c commit d2fe925

File tree

4 files changed

+10
-78
lines changed

4 files changed

+10
-78
lines changed

WooCommerce/Classes/Tools/PaymentLinkBuilder.swift

Lines changed: 0 additions & 27 deletions
This file was deleted.

WooCommerce/Classes/ViewRelated/Orders/Simple Payments/Method/SimplePaymentsMethodsViewModel.swift

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ final class SimplePaymentsMethodsViewModel: ObservableObject {
2525

2626
/// Stores the payment link for the order.
2727
///
28-
@Published private(set) var paymentLink: URL?
28+
let paymentLink: URL?
2929

3030
/// Defines if the view should be disabled to prevent any further action.
3131
/// Useful to prevent any double tap while a network operation is being performed.
@@ -99,7 +99,7 @@ final class SimplePaymentsMethodsViewModel: ObservableObject {
9999

100100
init(siteID: Int64 = 0,
101101
orderID: Int64 = 0,
102-
orderKey: String = "",
102+
paymentLink: URL? = nil,
103103
formattedTotal: String,
104104
presentNoticeSubject: PassthroughSubject<SimplePaymentsNotice, Never> = PassthroughSubject(),
105105
cppStoreStateObserver: CardPresentPaymentsOnboardingUseCaseProtocol = CardPresentPaymentsOnboardingUseCase(),
@@ -108,6 +108,7 @@ final class SimplePaymentsMethodsViewModel: ObservableObject {
108108
analytics: Analytics = ServiceLocator.analytics) {
109109
self.siteID = siteID
110110
self.orderID = orderID
111+
self.paymentLink = paymentLink
111112
self.formattedTotal = formattedTotal
112113
self.presentNoticeSubject = presentNoticeSubject
113114
self.cppStoreStateObserver = cppStoreStateObserver
@@ -117,7 +118,6 @@ final class SimplePaymentsMethodsViewModel: ObservableObject {
117118
self.title = String(format: Localization.title, formattedTotal)
118119

119120
bindStoreCPPState()
120-
fetchPaymentLink(orderKey: orderKey)
121121
}
122122

123123
/// Creates the info text when the merchant selects the cash payment method.
@@ -226,29 +226,6 @@ private extension SimplePaymentsMethodsViewModel {
226226
cppStoreStateObserver.refresh()
227227
}
228228

229-
230-
/// Fetches and builds the order payment link based on the store settings.
231-
///
232-
func fetchPaymentLink(orderKey: String) {
233-
guard let storeURL = stores.sessionManager.defaultSite?.url else {
234-
return DDLogError("⛔️ Couldn't find a valid store URL")
235-
}
236-
237-
let action = SettingAction.getPaymentsPagePath(siteID: siteID) { [weak self] result in
238-
guard let self = self else { return }
239-
240-
switch result {
241-
case .success(let paymentPagePath):
242-
let linkBuilder = PaymentLinkBuilder(host: storeURL, orderID: self.orderID, orderKey: orderKey, paymentPagePath: paymentPagePath)
243-
self.paymentLink = URL(string: linkBuilder.build())
244-
245-
case .failure(let error):
246-
DDLogError("⛔️ Error retrieving the payments page path: \(error.localizedDescription)")
247-
}
248-
}
249-
stores.dispatch(action)
250-
}
251-
252229
/// Tracks the `simplePaymentsFlowCompleted` event.
253230
///
254231
func trackFlowCompleted(method: WooAnalyticsEvent.SimplePayments.PaymentMethod) {

WooCommerce/Classes/ViewRelated/Orders/Simple Payments/Summary/SimplePaymentsSummaryViewModel.swift

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,10 @@ final class SimplePaymentsSummaryViewModel: ObservableObject {
114114
///
115115
private let orderID: Int64
116116

117-
/// Order Key. Needed to generate the payment link in `PaymentMethodViewModel`
117+
/// Order payment URL.
118+
/// Optional because older stores `(< 6.4)` don't provide this information.
118119
///
119-
private let orderKey: String
120+
private let paymentLink: URL?
120121

121122
/// Fee ID to update.
122123
///
@@ -144,15 +145,15 @@ final class SimplePaymentsSummaryViewModel: ObservableObject {
144145
noteContent: String? = nil,
145146
siteID: Int64 = 0,
146147
orderID: Int64 = 0,
147-
orderKey: String = "",
148+
paymentLink: URL? = nil,
148149
feeID: Int64 = 0,
149150
presentNoticeSubject: PassthroughSubject<SimplePaymentsNotice, Never> = PassthroughSubject(),
150151
currencyFormatter: CurrencyFormatter = CurrencyFormatter(currencySettings: ServiceLocator.currencySettings),
151152
stores: StoresManager = ServiceLocator.stores,
152153
analytics: Analytics = ServiceLocator.analytics) {
153154
self.siteID = siteID
154155
self.orderID = orderID
155-
self.orderKey = orderKey
156+
self.paymentLink = paymentLink
156157
self.feeID = feeID
157158
self.presentNoticeSubject = presentNoticeSubject
158159
self.currencyFormatter = currencyFormatter
@@ -194,7 +195,7 @@ final class SimplePaymentsSummaryViewModel: ObservableObject {
194195
taxLines: taxLines,
195196
siteID: order.siteID,
196197
orderID: order.orderID,
197-
orderKey: order.orderKey,
198+
paymentLink: order.paymentURL,
198199
feeID: order.fees.first?.feeID ?? 0,
199200
presentNoticeSubject: presentNoticeSubject,
200201
currencyFormatter: currencyFormatter,
@@ -249,7 +250,7 @@ final class SimplePaymentsSummaryViewModel: ObservableObject {
249250
func createMethodsViewModel() -> SimplePaymentsMethodsViewModel {
250251
SimplePaymentsMethodsViewModel(siteID: siteID,
251252
orderID: orderID,
252-
orderKey: orderKey,
253+
paymentLink: paymentLink,
253254
formattedTotal: total,
254255
presentNoticeSubject: presentNoticeSubject,
255256
stores: stores)

WooCommerce/WooCommerceTests/Tools/PaymentLinkBuilderTests.swift

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)