Skip to content

Commit 8f5e0d6

Browse files
Merge branch 'trunk' into issue/14419-jetpack-setup-account-creation-1
2 parents 74eff52 + 77d4cfa commit 8f5e0d6

File tree

84 files changed

+2034
-1182
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+2034
-1182
lines changed

Experiments/Experiments/DefaultFeatureFlagService.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,13 @@ public struct DefaultFeatureFlagService: FeatureFlagService {
8888
case .favoriteProducts:
8989
return buildConfig == .localDeveloper || buildConfig == .alpha
9090
case .productGlobalUniqueIdentifierSupport:
91-
return buildConfig == .localDeveloper || buildConfig == .alpha
91+
return true
9292
case .paymentsOnboardingInPointOfSale:
93-
return buildConfig == .localDeveloper
93+
return true
9494
case .sendReceiptAfterPayment:
9595
return false
96+
case .sendReceiptsForPointOfSale:
97+
return false
9698
case .jetpackSetupWPComAccountCreation:
9799
return buildConfig == .localDeveloper || buildConfig == .alpha
98100
default:

Experiments/Experiments/FeatureFlag.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,10 @@ public enum FeatureFlag: Int {
200200
/// Enables sending receipt after the payment via the API
201201
case sendReceiptAfterPayment
202202

203+
/// Adds support for sending receipts after the payment for POS
204+
///
205+
case sendReceiptsForPointOfSale
206+
203207
/// Enables WPCom account creation during Jetpack setup
204208
///
205209
case jetpackSetupWPComAccountCreation

Fakes/Fakes/Networking.generated.swift

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2761,6 +2761,18 @@ extension Networking.WooShippingCreatePackageResponse {
27612761
)
27622762
}
27632763
}
2764+
extension Networking.WooShippingPackagesResponse {
2765+
/// Returns a "ready to use" type filled with fake values.
2766+
///
2767+
public static func fake() -> Networking.WooShippingPackagesResponse {
2768+
.init(
2769+
storeOptions: .fake(),
2770+
customPackages: .fake(),
2771+
savedPredefinedPackages: .fake(),
2772+
allPredefinedOptions: .fake()
2773+
)
2774+
}
2775+
}
27642776
extension Networking.WooShippingCustomPackage {
27652777
/// Returns a "ready to use" type filled with fake values.
27662778
///
@@ -2778,12 +2790,35 @@ extension Networking.WooShippingPredefinedOption {
27782790
/// Returns a "ready to use" type filled with fake values.
27792791
///
27802792
public static func fake() -> Networking.WooShippingPredefinedOption {
2793+
.init(
2794+
title: .fake(),
2795+
providerID: .fake(),
2796+
predefinedPackages: .fake()
2797+
)
2798+
}
2799+
}
2800+
extension Networking.WooShippingPredefinedSavedOption {
2801+
/// Returns a "ready to use" type filled with fake values.
2802+
///
2803+
public static func fake() -> Networking.WooShippingPredefinedSavedOption {
27812804
.init(
27822805
id: .fake(),
27832806
predefinedPackageIDs: .fake()
27842807
)
27852808
}
27862809
}
2810+
extension Networking.WooShippingPredefinedPackage {
2811+
/// Returns a "ready to use" type filled with fake values.
2812+
///
2813+
public static func fake() -> Networking.WooShippingPredefinedPackage {
2814+
.init(id: .fake(),
2815+
name: .fake(),
2816+
isLetter: .fake(),
2817+
dimensions: .fake(),
2818+
boxWeight: .fake(),
2819+
groupId: .fake())
2820+
}
2821+
}
27872822
extension Networking.WordPressMedia {
27882823
/// Returns a "ready to use" type filled with fake values.
27892824
///

Networking/Networking.xcodeproj/project.pbxproj

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,7 @@
637637
93D8BBFF226BC1DA00AD2EB3 /* me-settings.json in Resources */ = {isa = PBXBuildFile; fileRef = 93D8BBFE226BC1DA00AD2EB3 /* me-settings.json */; };
638638
93D8BC01226BC20600AD2EB3 /* AccountSettingsRemoteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93D8BC00226BC20600AD2EB3 /* AccountSettingsRemoteTests.swift */; };
639639
95122E3E2CB82C0A0079FF0A /* generate-product-success-wrapped.json in Resources */ = {isa = PBXBuildFile; fileRef = 95122E3D2CB82C0A0079FF0A /* generate-product-success-wrapped.json */; };
640+
953477AB2CD678A500038AED /* MetaDataEncoderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953477AA2CD678A500038AED /* MetaDataEncoderTests.swift */; };
640641
A69FE19D2588D70E0059A96B /* order-with-deleted-refunds.json in Resources */ = {isa = PBXBuildFile; fileRef = A69FE19C2588D70E0059A96B /* order-with-deleted-refunds.json */; };
641642
AE1950F3296DB2C2004D37D2 /* ProductsBulkUpdateMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE1950F2296DB2C2004D37D2 /* ProductsBulkUpdateMapper.swift */; };
642643
AE2D6623272A8F6E004A2C3A /* TelemetryRemoteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2D6622272A8F6E004A2C3A /* TelemetryRemoteTests.swift */; };
@@ -949,6 +950,12 @@
949950
D8FBFF2422D52815006E3336 /* order-stats-v4-daily.json in Resources */ = {isa = PBXBuildFile; fileRef = D8FBFF2322D52815006E3336 /* order-stats-v4-daily.json */; };
950951
D8FBFF2722D529F2006E3336 /* order-stats-v4-month.json in Resources */ = {isa = PBXBuildFile; fileRef = D8FBFF2622D529F2006E3336 /* order-stats-v4-month.json */; };
951952
D8FBFF2922D52AFB006E3336 /* order-stats-v4-year.json in Resources */ = {isa = PBXBuildFile; fileRef = D8FBFF2822D52AFA006E3336 /* order-stats-v4-year.json */; };
953+
DAA259AB2CEC86370035F028 /* WooShippingSavedPredefinedPackage.swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA259AA2CEC86360035F028 /* WooShippingSavedPredefinedPackage.swift.swift */; };
954+
DAA259AD2CEC86BE0035F028 /* wooshipping-get-packages-success.json in Resources */ = {isa = PBXBuildFile; fileRef = DAA259AC2CEC86BE0035F028 /* wooshipping-get-packages-success.json */; };
955+
DAF367A22CE75B9E00D1B327 /* WooShippingPackagesMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAF367A12CE75B9D00D1B327 /* WooShippingPackagesMapper.swift */; };
956+
DAF367A42CE75C1B00D1B327 /* WooShippingPredefinedPackage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAF367A32CE75C1900D1B327 /* WooShippingPredefinedPackage.swift */; };
957+
DAF367A62CE75C2F00D1B327 /* WooShippingPredefinedSavedOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAF367A52CE75C2D00D1B327 /* WooShippingPredefinedSavedOption.swift */; };
958+
DAF367A82CE75C5C00D1B327 /* WooShippingPackagesResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAF367A72CE75C5B00D1B327 /* WooShippingPackagesResponse.swift */; };
952959
DE02ABB12B5636FC008E0AC4 /* BlazePaymentInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE02ABB02B5636FC008E0AC4 /* BlazePaymentInfo.swift */; };
953960
DE02ABB32B563E61008E0AC4 /* blaze-payment-info.json in Resources */ = {isa = PBXBuildFile; fileRef = DE02ABB22B563E61008E0AC4 /* blaze-payment-info.json */; };
954961
DE02ABB52B563E96008E0AC4 /* BlazePaymentInfoMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE02ABB42B563E96008E0AC4 /* BlazePaymentInfoMapper.swift */; };
@@ -1801,6 +1808,7 @@
18011808
93D8BBFE226BC1DA00AD2EB3 /* me-settings.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "me-settings.json"; sourceTree = "<group>"; };
18021809
93D8BC00226BC20600AD2EB3 /* AccountSettingsRemoteTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountSettingsRemoteTests.swift; sourceTree = "<group>"; };
18031810
95122E3D2CB82C0A0079FF0A /* generate-product-success-wrapped.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "generate-product-success-wrapped.json"; sourceTree = "<group>"; };
1811+
953477AA2CD678A500038AED /* MetaDataEncoderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetaDataEncoderTests.swift; sourceTree = "<group>"; };
18041812
9BD9C6C44CAC220B3C3B90B7 /* Pods-Networking.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Networking.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-Networking/Pods-Networking.release-alpha.xcconfig"; sourceTree = "<group>"; };
18051813
A69FE19C2588D70E0059A96B /* order-with-deleted-refunds.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "order-with-deleted-refunds.json"; sourceTree = "<group>"; };
18061814
AE1950F2296DB2C2004D37D2 /* ProductsBulkUpdateMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductsBulkUpdateMapper.swift; sourceTree = "<group>"; };
@@ -2119,6 +2127,12 @@
21192127
D8FBFF2322D52815006E3336 /* order-stats-v4-daily.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "order-stats-v4-daily.json"; sourceTree = "<group>"; };
21202128
D8FBFF2622D529F2006E3336 /* order-stats-v4-month.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "order-stats-v4-month.json"; sourceTree = "<group>"; };
21212129
D8FBFF2822D52AFA006E3336 /* order-stats-v4-year.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "order-stats-v4-year.json"; sourceTree = "<group>"; };
2130+
DAA259AA2CEC86360035F028 /* WooShippingSavedPredefinedPackage.swift.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WooShippingSavedPredefinedPackage.swift.swift; sourceTree = "<group>"; };
2131+
DAA259AC2CEC86BE0035F028 /* wooshipping-get-packages-success.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "wooshipping-get-packages-success.json"; sourceTree = "<group>"; };
2132+
DAF367A12CE75B9D00D1B327 /* WooShippingPackagesMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WooShippingPackagesMapper.swift; sourceTree = "<group>"; };
2133+
DAF367A32CE75C1900D1B327 /* WooShippingPredefinedPackage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WooShippingPredefinedPackage.swift; sourceTree = "<group>"; };
2134+
DAF367A52CE75C2D00D1B327 /* WooShippingPredefinedSavedOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WooShippingPredefinedSavedOption.swift; sourceTree = "<group>"; };
2135+
DAF367A72CE75C5B00D1B327 /* WooShippingPackagesResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WooShippingPackagesResponse.swift; sourceTree = "<group>"; };
21222136
DE02ABB02B5636FC008E0AC4 /* BlazePaymentInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlazePaymentInfo.swift; sourceTree = "<group>"; };
21232137
DE02ABB22B563E61008E0AC4 /* blaze-payment-info.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "blaze-payment-info.json"; sourceTree = "<group>"; };
21242138
DE02ABB42B563E96008E0AC4 /* BlazePaymentInfoMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlazePaymentInfoMapper.swift; sourceTree = "<group>"; };
@@ -2537,6 +2551,7 @@
25372551
isa = PBXGroup;
25382552
children = (
25392553
CEC7D5902CDD0C1C00111B79 /* WooShippingCreatePackageResponse.swift */,
2554+
DAF367A72CE75C5B00D1B327 /* WooShippingPackagesResponse.swift */,
25402555
451A97C82609FF050059D135 /* ShippingLabelPackagesResponse.swift */,
25412556
451A97CC260A01A40059D135 /* ShippingLabelStoreOptions.swift */,
25422557
CCAAD10E2683974000909664 /* ShippingLabelPackagePurchase.swift */,
@@ -2561,6 +2576,9 @@
25612576
isa = PBXGroup;
25622577
children = (
25632578
CEC7D5922CDD0D9900111B79 /* WooShippingPredefinedOption.swift */,
2579+
DAF367A32CE75C1900D1B327 /* WooShippingPredefinedPackage.swift */,
2580+
DAA259AA2CEC86360035F028 /* WooShippingSavedPredefinedPackage.swift.swift */,
2581+
DAF367A52CE75C2D00D1B327 /* WooShippingPredefinedSavedOption.swift */,
25642582
451A97E8260B657D0059D135 /* ShippingLabelPredefinedOption.swift */,
25652583
451A97E4260B631E0059D135 /* ShippingLabelPredefinedPackage.swift */,
25662584
);
@@ -3497,6 +3515,7 @@
34973515
95122E3D2CB82C0A0079FF0A /* generate-product-success-wrapped.json */,
34983516
CE0F4EC82CE3753F006339BD /* wooshipping-get-label-rates-success.json */,
34993517
CE0F4ECC2CE375DD006339BD /* wooshipping-get-label-rates-error.json */,
3518+
DAA259AC2CEC86BE0035F028 /* wooshipping-get-packages-success.json */,
35003519
);
35013520
path = Responses;
35023521
sourceTree = "<group>";
@@ -3605,6 +3624,7 @@
36053624
CC0786C4267BAF0F00BA9AC1 /* ShippingLabelStatusMapper.swift */,
36063625
CEC7D5942CDD164D00111B79 /* WooShippingCreatePackageMapper.swift */,
36073626
CE0F4ECE2CE37C4F006339BD /* WooShippingLabelRatesMapper.swift */,
3627+
DAF367A12CE75B9D00D1B327 /* WooShippingPackagesMapper.swift */,
36083628
CE606D8E2BE39426001CB424 /* ShippingMethodMapper.swift */,
36093629
FE28F6E326842848004465C7 /* UserMapper.swift */,
36103630
077F39D326A58DE700ABEADC /* SystemStatusMapper.swift */,
@@ -3892,6 +3912,7 @@
38923912
EE1217DB2AFE04A500E6CAB1 /* ProductVariationEncoderTests.swift */,
38933913
028F3F932B0DF9A800F8E227 /* OrderEncoderTests.swift */,
38943914
8646A9B62B4522E7001F606C /* BlazeForecastedImpressionsInputEncoderTests.swift */,
3915+
953477AA2CD678A500038AED /* MetaDataEncoderTests.swift */,
38953916
);
38963917
path = Encoder;
38973918
sourceTree = "<group>";
@@ -4492,6 +4513,7 @@
44924513
02EFF81D2ABC3D0E0015ABB2 /* order-gift-card-invalid-error.json in Resources */,
44934514
02C54CC624D3E938007D658F /* product-variations-load-all-manage-stock-two-states.json in Resources */,
44944515
D823D90722376B4800C90817 /* shipment_tracking_new_custom_provider.json in Resources */,
4516+
DAA259AD2CEC86BE0035F028 /* wooshipping-get-packages-success.json in Resources */,
44954517
74A1D264211898F000931DFA /* site-visits-week.json in Resources */,
44964518
EE57C127297F8E5E00BC31E7 /* product-attribute-terms-without-data.json in Resources */,
44974519
CCEC5E9129E9BF1400912D6B /* product-variation-subscription.json in Resources */,
@@ -4947,6 +4969,7 @@
49474969
453305E92459DF2100264E50 /* PostMapper.swift in Sources */,
49484970
E12552C526385B05001CEE70 /* ShippingLabelAddressValidationSuccess.swift in Sources */,
49494971
456F71D424CB1E2400472EC1 /* ProductTagFromBatchCreation.swift in Sources */,
4972+
DAF367A42CE75C1B00D1B327 /* WooShippingPredefinedPackage.swift in Sources */,
49504973
CEB9BF412BB198860007978A /* ProductBundleStatsRemote.swift in Sources */,
49514974
2685C0FA263B5D5300D9EE97 /* AddOnGroupMapper.swift in Sources */,
49524975
CCE5F38D29EFFBC400087332 /* SubscriptionListMapper.swift in Sources */,
@@ -5091,6 +5114,7 @@
50915114
B554FA912180BCFC00C54DFF /* NoteHash.swift in Sources */,
50925115
68F48B0D28E3B2E80045C15B /* WCAnalyticsCustomerMapper.swift in Sources */,
50935116
CE0A0F19223987DF0075ED8D /* ProductListMapper.swift in Sources */,
5117+
DAA259AB2CEC86370035F028 /* WooShippingSavedPredefinedPackage.swift.swift in Sources */,
50945118
DEB3877E2C2A9DE20025256E /* GoogleListingsAndAdsRemote.swift in Sources */,
50955119
26BD9FCF2965EE71004E0D15 /* ProductVariationsBulkCreateMapper.swift in Sources */,
50965120
DE4D23BC29B5FC0D003A4B5D /* AnnouncementListMapper.swift in Sources */,
@@ -5125,6 +5149,7 @@
51255149
DE20046C2BFB4D4600660A72 /* ProductReport.swift in Sources */,
51265150
4599FC5E24A62AA70056157A /* ProductTagsRemote.swift in Sources */,
51275151
DEC51AE7276848A9009F3DF4 /* SystemStatus+Environment.swift in Sources */,
5152+
DAF367A82CE75C5C00D1B327 /* WooShippingPackagesResponse.swift in Sources */,
51285153
DE02ABB12B5636FC008E0AC4 /* BlazePaymentInfo.swift in Sources */,
51295154
FE28F6E226840DED004465C7 /* User.swift in Sources */,
51305155
7426CA0F21AF2C90004E9FFC /* SiteAPI.swift in Sources */,
@@ -5169,6 +5194,7 @@
51695194
EE1D9A9F2ACD6BA60020D817 /* AIProduct.swift in Sources */,
51705195
CE583A0E2109154500D73C1C /* OrderNoteMapper.swift in Sources */,
51715196
D8FBFF0D22D3AF4A006E3336 /* StatsGranularityV4.swift in Sources */,
5197+
DAF367A22CE75B9E00D1B327 /* WooShippingPackagesMapper.swift in Sources */,
51725198
261870782540A252006522A1 /* ShippingLineTax.swift in Sources */,
51735199
DEB3878C2C2D70EF0025256E /* GoogleAdsCampaignListMapper.swift in Sources */,
51745200
CE0F4ECF2CE37C4F006339BD /* WooShippingLabelRatesMapper.swift in Sources */,
@@ -5322,6 +5348,7 @@
53225348
DE2E8EB329546501002E4B14 /* PlaceholderDataValidator.swift in Sources */,
53235349
2665032E261F4FBF0079A159 /* ProductAddOnOption.swift in Sources */,
53245350
E18152C028F85D4A0011A0EC /* InAppPurchasesProductMapper.swift in Sources */,
5351+
DAF367A62CE75C2F00D1B327 /* WooShippingPredefinedSavedOption.swift in Sources */,
53255352
EE8A30302B72A3C8001D7C66 /* OrderAttributionInfo.swift in Sources */,
53265353
028296F7237D588700E84012 /* ProductVariation.swift in Sources */,
53275354
DE4D23BA29B5FB3E003A4B5D /* AnnouncementsRemote.swift in Sources */,
@@ -5421,6 +5448,7 @@
54215448
FE28F6EC268436C9004465C7 /* UserRemoteTests.swift in Sources */,
54225449
DE74F29E27E0A6800002FE59 /* SiteSettingMapperTests.swift in Sources */,
54235450
020D07C023D8587700FD9580 /* MediaRemoteTests.swift in Sources */,
5451+
953477AB2CD678A500038AED /* MetaDataEncoderTests.swift in Sources */,
54245452
DE6F308727966FEF004E1C9A /* CouponReportListMapperTests.swift in Sources */,
54255453
DEA493772B39987B00EED015 /* BlazeTargetOptionMapperTests.swift in Sources */,
54265454
4599FC5A24A626B70056157A /* ProductTagListMapperTests.swift in Sources */,
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import Foundation
2+
3+
struct WooShippingPackagesMapper: Mapper {
4+
/// (Attempts) to convert a dictionary into WooShippingPackagesResponse.
5+
///
6+
func map(response: Data) throws -> WooShippingPackagesResponse {
7+
let decoder = JSONDecoder()
8+
if hasDataEnvelope(in: response) {
9+
return try decoder.decode(WooShippingPackagesMapperEnvelope.self, from: response).data
10+
} else {
11+
return try decoder.decode(WooShippingPackagesResponse.self, from: response)
12+
}
13+
}
14+
}
15+
16+
/// WooShippingPackagesMapperEnvelope Disposable Entity:
17+
/// `Woo Shipping Packages` endpoint returns the shipping label packages in the `data` key.
18+
/// This entity allows us to do parse all the things with JSONDecoder.
19+
///
20+
private struct WooShippingPackagesMapperEnvelope: Decodable {
21+
let data: WooShippingPackagesResponse
22+
23+
private enum CodingKeys: String, CodingKey {
24+
case data = "data"
25+
}
26+
}

Networking/Networking/Model/Copiable/Models+Copiable.generated.swift

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,7 +1160,7 @@ extension Networking.MetaData {
11601160
public func copy(
11611161
metadataID: CopiableProp<Int64> = .copy,
11621162
key: CopiableProp<String> = .copy,
1163-
value: CopiableProp<String> = .copy
1163+
value: CopiableProp<MetaDataValue> = .copy
11641164
) -> Networking.MetaData {
11651165
let metadataID = metadataID ?? self.metadataID
11661166
let key = key ?? self.key
@@ -4045,7 +4045,7 @@ extension Networking.WooPaymentsPayoutsSchedule {
40454045
extension Networking.WooShippingCreatePackageResponse {
40464046
public func copy(
40474047
customPackages: CopiableProp<[WooShippingCustomPackage]> = .copy,
4048-
predefinedOptions: CopiableProp<[WooShippingPredefinedOption]> = .copy
4048+
predefinedOptions: CopiableProp<[WooShippingPredefinedSavedOption]> = .copy
40494049
) -> Networking.WooShippingCreatePackageResponse {
40504050
let customPackages = customPackages ?? self.customPackages
40514051
let predefinedOptions = predefinedOptions ?? self.predefinedOptions
@@ -4057,6 +4057,27 @@ extension Networking.WooShippingCreatePackageResponse {
40574057
}
40584058
}
40594059

4060+
extension Networking.WooShippingPackagesResponse {
4061+
public func copy(
4062+
storeOptions: CopiableProp<ShippingLabelStoreOptions> = .copy,
4063+
customPackages: CopiableProp<[WooShippingCustomPackage]> = .copy,
4064+
savedPredefinedPackages: CopiableProp<[WooShippingSavedPredefinedPackage]> = .copy,
4065+
allPredefinedOptions: CopiableProp<[WooShippingPredefinedOption]> = .copy
4066+
) -> Networking.WooShippingPackagesResponse {
4067+
let storeOptions = storeOptions ?? self.storeOptions
4068+
let customPackages = customPackages ?? self.customPackages
4069+
let savedPredefinedPackages = savedPredefinedPackages ?? self.savedPredefinedPackages
4070+
let allPredefinedOptions = allPredefinedOptions ?? self.allPredefinedOptions
4071+
4072+
return Networking.WooShippingPackagesResponse(
4073+
storeOptions: storeOptions,
4074+
customPackages: customPackages,
4075+
savedPredefinedPackages: savedPredefinedPackages,
4076+
allPredefinedOptions: allPredefinedOptions
4077+
)
4078+
}
4079+
}
4080+
40604081
extension Networking.WooShippingCustomPackage {
40614082
public func copy(
40624083
id: CopiableProp<String> = .copy,

0 commit comments

Comments
 (0)