Skip to content

Commit 5d79647

Browse files
committed
Use WooShippingAddress instead of legacy type
1 parent 24a9761 commit 5d79647

File tree

6 files changed

+49
-67
lines changed

6 files changed

+49
-67
lines changed

Networking/Networking/Remote/WooShippingRemote.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ public protocol WooShippingRemoteProtocol {
1010
completion: @escaping (Result<WooShippingCreatePackageResponse, Error>) -> Void)
1111
func loadLabelRates(siteID: Int64,
1212
orderID: Int64,
13-
originAddress: ShippingLabelAddress,
14-
destinationAddress: ShippingLabelAddress,
13+
originAddress: WooShippingAddress,
14+
destinationAddress: WooShippingAddress,
1515
packages: [ShippingLabelPackageSelected],
1616
completion: @escaping (Result<[ShippingLabelCarriersAndRates], Error>) -> Void)
1717
func loadPackages(siteID: Int64,
@@ -20,8 +20,8 @@ public protocol WooShippingRemoteProtocol {
2020
completion: @escaping (Result<WooShippingAccountSettings, Error>) -> Void)
2121
func purchaseShippingLabel(siteID: Int64,
2222
orderID: Int64,
23-
originAddress: ShippingLabelAddress,
24-
destinationAddress: ShippingLabelAddress,
23+
originAddress: WooShippingAddress,
24+
destinationAddress: WooShippingAddress,
2525
package: WooShippingPackagePurchase,
2626
completion: @escaping (Result<[ShippingLabelPurchase], Error>) -> Void)
2727
func checkLabelStatus(siteID: Int64,
@@ -36,7 +36,7 @@ public protocol WooShippingRemoteProtocol {
3636
func loadOriginAddresses(siteID: Int64,
3737
completion: @escaping (Result<[WooShippingOriginAddress], Error>) -> Void)
3838
func addressValidation(siteID: Int64,
39-
address: ShippingLabelAddress,
39+
address: WooShippingAddress,
4040
completion: @escaping (Result<WooShippingAddressValidationSuccess, Error>) -> Void)
4141
func updateOriginAddress(siteID: Int64,
4242
address: WooShippingOriginAddress,
@@ -122,8 +122,8 @@ public final class WooShippingRemote: Remote, WooShippingRemoteProtocol {
122122
/// - completion: Closure to be executed upon completion.
123123
public func loadLabelRates(siteID: Int64,
124124
orderID: Int64,
125-
originAddress: ShippingLabelAddress,
126-
destinationAddress: ShippingLabelAddress,
125+
originAddress: WooShippingAddress,
126+
destinationAddress: WooShippingAddress,
127127
packages: [ShippingLabelPackageSelected],
128128
completion: @escaping (Result<[ShippingLabelCarriersAndRates], Error>) -> Void) {
129129
do {
@@ -203,8 +203,8 @@ public final class WooShippingRemote: Remote, WooShippingRemoteProtocol {
203203
/// - completion: Closure to be executed upon completion.
204204
public func purchaseShippingLabel(siteID: Int64,
205205
orderID: Int64,
206-
originAddress: ShippingLabelAddress,
207-
destinationAddress: ShippingLabelAddress,
206+
originAddress: WooShippingAddress,
207+
destinationAddress: WooShippingAddress,
208208
package: WooShippingPackagePurchase,
209209
completion: @escaping (Result<[ShippingLabelPurchase], Error>) -> Void) {
210210
do {
@@ -301,7 +301,7 @@ public final class WooShippingRemote: Remote, WooShippingRemoteProtocol {
301301
/// - address: The address that should be verified.
302302
/// - completion: Closure to be executed upon completion.
303303
public func addressValidation(siteID: Int64,
304-
address: ShippingLabelAddress,
304+
address: WooShippingAddress,
305305
completion: @escaping (Result<WooShippingAddressValidationSuccess, Error>) -> Void) {
306306
do {
307307
let parameters = [

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Package and Rate Selection/WooShippingServiceViewModel.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import Yosemite
33
final class WooShippingServiceViewModel: ObservableObject {
44
private let siteID: Int64
55
private let orderID: Int64
6-
private let originAddress: ShippingLabelAddress?
7-
private let destinationAddress: ShippingLabelAddress?
6+
private let originAddress: WooShippingAddress?
7+
private let destinationAddress: WooShippingAddress?
88
private let stores: StoresManager
99

1010
/// Whether the destination address is present and with non-empty fields.
@@ -36,8 +36,8 @@ final class WooShippingServiceViewModel: ObservableObject {
3636
let onSelectRate: ((_ selectedRate: WooShippingSelectedRate) -> Void)?
3737

3838
init(order: Order,
39-
originAddress: ShippingLabelAddress?,
40-
destinationAddress: ShippingLabelAddress?,
39+
originAddress: WooShippingAddress?,
40+
destinationAddress: WooShippingAddress?,
4141
stores: StoresManager = ServiceLocator.stores,
4242
onSelectRate: ((_ selectedRate: WooShippingSelectedRate) -> Void)? = nil) {
4343
self.siteID = order.siteID

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShippingAddresses/WooShippingEditAddressViewModel.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -269,15 +269,15 @@ final class WooShippingEditAddressViewModel: ObservableObject, Identifiable {
269269
/// Validates the address remotely.
270270
@MainActor
271271
func remotelyValidateAddress() async {
272-
let addressToValidate = ShippingLabelAddress(company: company.value,
273-
name: name.value,
274-
phone: phone.value,
275-
country: country.value,
276-
state: state.value,
277-
address1: address.value,
278-
address2: "",
279-
city: city.value,
280-
postcode: postalCode.value)
272+
let addressToValidate = WooShippingAddress(company: company.value,
273+
name: name.value,
274+
phone: phone.value,
275+
country: country.value,
276+
state: state.value,
277+
address1: address.value,
278+
address2: "",
279+
city: city.value,
280+
postcode: postalCode.value)
281281
do {
282282
let validation = try await remotelyValidateAddress(addressToValidate)
283283
normalizeAddressVM = WooShippingNormalizeAddressViewModel(enteredAddress: validation.originalAddress,
@@ -459,7 +459,7 @@ private extension WooShippingEditAddressViewModel {
459459

460460
/// Remotely validates the provided address.
461461
@MainActor
462-
func remotelyValidateAddress(_ address: ShippingLabelAddress) async throws -> WooShippingAddressValidationSuccess {
462+
func remotelyValidateAddress(_ address: WooShippingAddress) async throws -> WooShippingAddressValidationSuccess {
463463
try await withCheckedThrowingContinuation { continuation in
464464
isLoading = true
465465
let action = WooShippingAction.validateAddress(siteID: siteID,

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShippingCreateLabelsViewModel.swift

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@ final class WooShippingCreateLabelsViewModel: ObservableObject {
236236
productIDs: itemsDataSource.items.map(\.productOrVariationID))
237237
let action = WooShippingAction.purchaseShippingLabel(siteID: order.siteID,
238238
orderID: order.orderID,
239-
originAddress: selectedOriginAddress.toShippingLabelAddress(),
240-
destinationAddress: destinationAddress.toShippingLabelAddress(),
239+
originAddress: selectedOriginAddress.toWooShippingAddress(),
240+
destinationAddress: destinationAddress,
241241
package: packagePurchase) { [weak self] result in
242242
guard let self else { return }
243243
isPurchasingLabel = false
@@ -331,8 +331,8 @@ private extension WooShippingCreateLabelsViewModel {
331331
guard let self else { return }
332332
originAddress = selectedOriginAddress?.formattedPostalAddress ?? ""
333333
shippingService = WooShippingServiceViewModel(order: order,
334-
originAddress: selectedOriginAddress?.toShippingLabelAddress(),
335-
destinationAddress: destinationAddress?.toShippingLabelAddress(),
334+
originAddress: selectedOriginAddress?.toWooShippingAddress(),
335+
destinationAddress: destinationAddress,
336336
stores: stores) { [weak self] selectedRate in
337337
self?.selectedRate = selectedRate
338338
}
@@ -468,38 +468,20 @@ private extension WooShippingCreateLabelsViewModel {
468468
}
469469

470470
private extension WooShippingOriginAddress {
471-
/// Converts the origin address to a `ShippingLabelAddress`.
471+
/// Converts the origin address to a `WooShippingAddress`.
472472
///
473473
/// This prepares the address for use in e.g. fetching available shipping rates or purchasing the label.
474474
///
475-
func toShippingLabelAddress() -> ShippingLabelAddress {
476-
ShippingLabelAddress(company: company,
477-
name: fullName,
478-
phone: phone,
479-
country: country,
480-
state: state,
481-
address1: address1,
482-
address2: address2,
483-
city: city,
484-
postcode: postcode)
485-
}
486-
}
487-
488-
private extension WooShippingAddress {
489-
/// Converts the address to a `ShippingLabelAddress`.
490-
///
491-
/// This prepares the address for use in e.g. fetching available shipping rates or purchasing the label.
492-
///
493-
func toShippingLabelAddress() -> ShippingLabelAddress {
494-
ShippingLabelAddress(company: company,
495-
name: name,
496-
phone: phone,
497-
country: country,
498-
state: state,
499-
address1: address1,
500-
address2: address2,
501-
city: city,
502-
postcode: postcode)
475+
func toWooShippingAddress() -> WooShippingAddress {
476+
WooShippingAddress(company: company,
477+
name: fullName,
478+
phone: phone,
479+
country: country,
480+
state: state,
481+
address1: address1,
482+
address2: address2,
483+
city: city,
484+
postcode: postcode)
503485
}
504486
}
505487

Yosemite/Yosemite/Actions/WooShippingAction.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public enum WooShippingAction: Action {
1818
///
1919
case loadLabelRates(siteID: Int64,
2020
orderID: Int64,
21-
originAddress: ShippingLabelAddress,
22-
destinationAddress: ShippingLabelAddress,
21+
originAddress: WooShippingAddress,
22+
destinationAddress: WooShippingAddress,
2323
packages: [ShippingLabelPackageSelected],
2424
completion: (Result<[ShippingLabelCarriersAndRates], Error>) -> Void)
2525

@@ -37,8 +37,8 @@ public enum WooShippingAction: Action {
3737
///
3838
case purchaseShippingLabel(siteID: Int64,
3939
orderID: Int64,
40-
originAddress: ShippingLabelAddress,
41-
destinationAddress: ShippingLabelAddress,
40+
originAddress: WooShippingAddress,
41+
destinationAddress: WooShippingAddress,
4242
package: WooShippingPackagePurchase,
4343
backendProcessingDelay: TimeInterval = 2.0,
4444
pollingDelay: TimeInterval = 1.0,
@@ -60,7 +60,7 @@ public enum WooShippingAction: Action {
6060
/// Validate a shipping address.
6161
///
6262
case validateAddress(siteID: Int64,
63-
address: ShippingLabelAddress,
63+
address: WooShippingAddress,
6464
completion: (Result<WooShippingAddressValidationSuccess, Error>) -> Void)
6565

6666
/// Update an origin address.

Yosemite/Yosemite/Stores/WooShippingStore.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ private extension WooShippingStore {
109109

110110
func loadLabelRates(siteID: Int64,
111111
orderID: Int64,
112-
originAddress: ShippingLabelAddress,
113-
destinationAddress: ShippingLabelAddress,
112+
originAddress: WooShippingAddress,
113+
destinationAddress: WooShippingAddress,
114114
packages: [ShippingLabelPackageSelected],
115115
completion: @escaping (Result<[ShippingLabelCarriersAndRates], Error>) -> Void) {
116116
remote.loadLabelRates(siteID: siteID,
@@ -142,8 +142,8 @@ private extension WooShippingStore {
142142

143143
func purchaseShippingLabel(siteID: Int64,
144144
orderID: Int64,
145-
originAddress: ShippingLabelAddress,
146-
destinationAddress: ShippingLabelAddress,
145+
originAddress: WooShippingAddress,
146+
destinationAddress: WooShippingAddress,
147147
package: WooShippingPackagePurchase,
148148
backendProcessingDelay: TimeInterval,
149149
pollingDelay: TimeInterval,
@@ -256,7 +256,7 @@ private extension WooShippingStore {
256256
}
257257

258258
func validateAddress(siteID: Int64,
259-
address: ShippingLabelAddress,
259+
address: WooShippingAddress,
260260
completion: @escaping (Result<WooShippingAddressValidationSuccess, Error>) -> Void) {
261261
remote.addressValidation(siteID: siteID, address: address, completion: completion)
262262
}

0 commit comments

Comments
 (0)