Skip to content

Commit 32b1587

Browse files
authored
Merge pull request #6600 from woocommerce/issue/clean-simple-payments-requests
Simple Payments: Clean code necessary for building payment links
2 parents 351ef00 + 34326a1 commit 32b1587

File tree

8 files changed

+0
-236
lines changed

8 files changed

+0
-236
lines changed

Networking/Networking.xcodeproj/project.pbxproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,6 @@
142142
2665032E261F4FBF0079A159 /* ProductAddOnOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2665032D261F4FBF0079A159 /* ProductAddOnOption.swift */; };
143143
26650332261FFA1A0079A159 /* ProductAddOnEnvelope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26650331261FFA1A0079A159 /* ProductAddOnEnvelope.swift */; };
144144
266C7F9225AD3C88006ED243 /* attribute-term.json in Resources */ = {isa = PBXBuildFile; fileRef = 266C7F9125AD3C87006ED243 /* attribute-term.json */; };
145-
267066092774BF3B008E1F68 /* settings-advanced.json in Resources */ = {isa = PBXBuildFile; fileRef = 267066082774BF3B008E1F68 /* settings-advanced.json */; };
146145
2670C3FC270F4E06002FE931 /* SiteListMapperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2670C3FB270F4E06002FE931 /* SiteListMapperTests.swift */; };
147146
2670C3FE270F4E6A002FE931 /* sites-malformed.json in Resources */ = {isa = PBXBuildFile; fileRef = 2670C3FD270F4E6A002FE931 /* sites-malformed.json */; };
148147
267313312559CC930026F7EF /* PaymentGateway.swift in Sources */ = {isa = PBXBuildFile; fileRef = 267313302559CC930026F7EF /* PaymentGateway.swift */; };
@@ -812,7 +811,6 @@
812811
2665032D261F4FBF0079A159 /* ProductAddOnOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductAddOnOption.swift; sourceTree = "<group>"; };
813812
26650331261FFA1A0079A159 /* ProductAddOnEnvelope.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductAddOnEnvelope.swift; sourceTree = "<group>"; };
814813
266C7F9125AD3C87006ED243 /* attribute-term.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "attribute-term.json"; sourceTree = "<group>"; };
815-
267066082774BF3B008E1F68 /* settings-advanced.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "settings-advanced.json"; sourceTree = "<group>"; };
816814
2670C3FB270F4E06002FE931 /* SiteListMapperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteListMapperTests.swift; sourceTree = "<group>"; };
817815
2670C3FD270F4E6A002FE931 /* sites-malformed.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "sites-malformed.json"; sourceTree = "<group>"; };
818816
267313302559CC930026F7EF /* PaymentGateway.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentGateway.swift; sourceTree = "<group>"; };
@@ -1942,7 +1940,6 @@
19421940
D88D5A40230BC5DA007B6E01 /* reviews-all.json */,
19431941
57BE08D72409B63700F6DCED /* reviews-missing-avatar-urls.json */,
19441942
D88D5A42230BC668007B6E01 /* reviews-single.json */,
1945-
267066082774BF3B008E1F68 /* settings-advanced.json */,
19461943
DE74F29B27E0A1D00002FE59 /* setting-coupon.json */,
19471944
DE74F29F27E3137F0002FE59 /* setting-analytics.json */,
19481945
74046E20217A73D0007DD7BF /* settings-general.json */,
@@ -2519,7 +2516,6 @@
25192516
CC0786C7267BB10700BA9AC1 /* shipping-label-status-success.json in Resources */,
25202517
D88D5A41230BC5DA007B6E01 /* reviews-all.json in Resources */,
25212518
74C947862193A6C70024CB60 /* comment-moderate-unapproved.json in Resources */,
2522-
267066092774BF3B008E1F68 /* settings-advanced.json in Resources */,
25232519
3105472C262E303400C5C02B /* wcpay-payment-intent-unknown-status.json in Resources */,
25242520
B559EBAA20A0B5CD00836CD4 /* orders-load-all.json in Resources */,
25252521
3158A4A12729F40F00C3CFA8 /* wcpay-account-live-test.json in Resources */,

Networking/Networking/Remote/SiteSettingsRemote.swift

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,6 @@ public class SiteSettingsRemote: Remote {
3333
enqueue(request, mapper: mapper, completion: completion)
3434
}
3535

36-
/// Retrieves all of the advanced `SiteSetting`s for a given site.
37-
///
38-
/// - Parameters:
39-
/// - siteID: Site for which we'll fetch the advanced settings.
40-
/// - completion: Closure to be executed upon completion.
41-
///
42-
public func loadAdvancedSettings(for siteID: Int64, completion: @escaping (Result<[SiteSetting], Error>) -> Void) {
43-
let path = Constants.siteSettingsPath + Constants.advancedSettingsGroup
44-
let request = JetpackRequest(wooApiVersion: .mark3, method: .get, siteID: siteID, path: path, parameters: nil)
45-
let mapper = SiteSettingsMapper(siteID: siteID, settingsGroup: SiteSettingGroup.advanced)
46-
47-
enqueue(request, mapper: mapper, completion: completion)
48-
}
49-
5036
/// Retrieve detail for a single setting for a given site
5137
///
5238
/// - Parameters:

Networking/NetworkingTests/Remote/SiteSettingsRemoteTests.swift

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -87,25 +87,6 @@ final class SiteSettingsRemoteTests: XCTestCase {
8787
wait(for: [expectation], timeout: Constants.expectationTimeout)
8888
}
8989

90-
// MARK: - Load advanced settings tests
91-
92-
func test_load_advanced_settings_properly_returns_parsed_settings() throws {
93-
// Given
94-
network.simulateResponse(requestUrlSuffix: "settings/advanced", filename: "settings-advanced")
95-
let remote = SiteSettingsRemote(network: network)
96-
97-
// When
98-
let result: Result<[Networking.SiteSetting], Error> = waitFor { promise in
99-
remote.loadAdvancedSettings(for: self.sampleSiteID) { result in
100-
promise(result)
101-
}
102-
}
103-
104-
// Then
105-
let settings = try result.get()
106-
XCTAssertEqual(settings.count, 2)
107-
}
108-
10990
// MARK: - Load single setting tests
11091
func test_loadSetting_properly_returns_parsed_settings() throws {
11192
// Given

Networking/NetworkingTests/Responses/settings-advanced.json

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

WooCommerce/Classes/Yosemite/DefaultStoresManager.swift

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -330,15 +330,6 @@ private extension DefaultStoresManager {
330330
}
331331
dispatch(productSettingsAction)
332332

333-
group.enter()
334-
let advancedSettingsAction = SettingAction.synchronizeAdvancedSiteSettings(siteID: siteID) { error in
335-
if let error = error {
336-
errors.append(error)
337-
}
338-
group.leave()
339-
}
340-
dispatch(advancedSettingsAction)
341-
342333
group.enter()
343334
let sitePlanAction = AccountAction.synchronizeSitePlan(siteID: siteID) { result in
344335
if case let .failure(error) = result {

Yosemite/Yosemite/Actions/SettingAction.swift

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,10 @@ public enum SettingAction: Action {
1414
///
1515
case synchronizeProductSiteSettings(siteID: Int64, onCompletion: (Error?) -> Void)
1616

17-
/// Synchronizes the site's advanced settings
18-
///
19-
case synchronizeAdvancedSiteSettings(siteID: Int64, onCompletion: (Error?) -> Void)
20-
2117
/// Retrieves the site API details (used to determine the WC version)
2218
///
2319
case retrieveSiteAPI(siteID: Int64, onCompletion: (Result<SiteAPI, Error>) -> Void)
2420

25-
/// Retrieves the store payments page path.
26-
///
27-
case getPaymentsPagePath(siteID: Int64, onCompletion: (Result<String, SettingStore.SettingError>) -> Void)
28-
2921
/// Retrieves the setting for whether coupons are enabled for the specified store
3022
///
3123
case retrieveCouponSetting(siteID: Int64, onCompletion: (Result<Bool, Error>) -> Void)

Yosemite/Yosemite/Stores/SettingStore.swift

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,8 @@ public class SettingStore: Store {
3838
synchronizeGeneralSiteSettings(siteID: siteID, onCompletion: onCompletion)
3939
case .synchronizeProductSiteSettings(let siteID, let onCompletion):
4040
synchronizeProductSiteSettings(siteID: siteID, onCompletion: onCompletion)
41-
case let .synchronizeAdvancedSiteSettings(siteID, onCompletion):
42-
synchronizeAdvancedSiteSettings(siteID: siteID, onCompletion: onCompletion)
4341
case .retrieveSiteAPI(let siteID, let onCompletion):
4442
retrieveSiteAPI(siteID: siteID, onCompletion: onCompletion)
45-
case let .getPaymentsPagePath(siteID, onCompletion):
46-
getPaymentsPagePath(siteID: siteID, onCompletion: onCompletion)
4743
case let .retrieveCouponSetting(siteID, onCompletion):
4844
retrieveCouponSetting(siteID: siteID, onCompletion: onCompletion)
4945
case let .enableCouponSetting(siteID, onCompletion):
@@ -91,39 +87,13 @@ private extension SettingStore {
9187
}
9288
}
9389

94-
/// Synchronizes the advanced site settings associated with the provided Site ID (if any!).
95-
///
96-
func synchronizeAdvancedSiteSettings(siteID: Int64, onCompletion: @escaping (Error?) -> Void) {
97-
siteSettingsRemote.loadAdvancedSettings(for: siteID) { [weak self] result in
98-
switch result {
99-
case .success(let settings):
100-
self?.upsertStoredAdvancedSettingsInBackground(siteID: siteID, readOnlySiteSettings: settings) {
101-
onCompletion(nil)
102-
}
103-
case .failure(let error):
104-
onCompletion(error)
105-
}
106-
}
107-
}
108-
10990
/// Retrieves the site API information associated with the provided Site ID (if any!).
11091
/// This call does NOT persist returned data into the Storage layer.
11192
///
11293
func retrieveSiteAPI(siteID: Int64, onCompletion: @escaping (Result<SiteAPI, Error>) -> Void) {
11394
siteAPIRemote.loadAPIInformation(for: siteID, completion: onCompletion)
11495
}
11596

116-
/// Retrieves the store payments page path.
117-
///
118-
func getPaymentsPagePath(siteID: Int64, onCompletion: @escaping (Result<String, SettingStore.SettingError>) -> Void) {
119-
guard let paymentPageSettings = sharedDerivedStorage.loadSiteSetting(siteID: siteID, settingID: SettingKeys.paymentsPage),
120-
let paymentPagePath = paymentPageSettings.value else {
121-
return onCompletion(.failure(SettingError.paymentsPageNotFound))
122-
}
123-
124-
onCompletion(.success(paymentPagePath))
125-
}
126-
12797
/// Retrieves the setting for whether coupons are enabled for the specified store
12898
///
12999
func retrieveCouponSetting(siteID: Int64, onCompletion: @escaping (Result<Bool, Error>) -> Void) {
@@ -283,18 +253,9 @@ extension SettingStore {
283253

284254
// MARK: Definitions
285255
extension SettingStore {
286-
/// Possible store errors.
287-
///
288-
public enum SettingError: Swift.Error {
289-
/// Payment page path was not found
290-
///
291-
case paymentsPageNotFound
292-
}
293-
294256
/// Settings keys.
295257
///
296258
private enum SettingKeys {
297-
static let paymentsPage = "woocommerce_checkout_pay_endpoint"
298259
static let coupons = "woocommerce_enable_coupons"
299260
static let analytics = "woocommerce_analytics_enabled"
300261
}

Yosemite/YosemiteTests/Stores/SettingStoreTests.swift

Lines changed: 0 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -472,48 +472,6 @@ final class SettingStoreTests: XCTestCase {
472472
XCTAssertEqual(storageProductSiteSettings2?.map({ $0.toReadOnly() }).sorted(), [sampleProductSiteSetting2Mutated()])
473473
}
474474

475-
func test_advanced_site_gets_stored_correctly() throws {
476-
// Given
477-
let settingStore = SettingStore(dispatcher: dispatcher, storageManager: storageManager, network: network)
478-
network.simulateResponse(requestUrlSuffix: "settings/advanced", filename: "settings-advanced")
479-
XCTAssertEqual(viewStorage.countObjects(ofType: Storage.SiteSetting.self), 0)
480-
481-
// When
482-
let action = SettingAction.synchronizeAdvancedSiteSettings(siteID: sampleSiteID) { _ in }
483-
settingStore.onAction(action)
484-
485-
// Then
486-
waitUntil {
487-
self.viewStorage.countObjects(ofType: Storage.SiteSetting.self) == 2
488-
}
489-
}
490-
491-
func test_advanced_site_gets_updated_correctly() throws {
492-
// Given
493-
storageManager.insertSampleSiteSetting(readOnlySiteSetting: sampleAdvancedSiteSettingMutated())
494-
XCTAssertEqual(viewStorage.countObjects(ofType: Storage.SiteSetting.self), 1)
495-
496-
network.simulateResponse(requestUrlSuffix: "settings/advanced", filename: "settings-advanced")
497-
let settingStore = SettingStore(dispatcher: dispatcher, storageManager: storageManager, network: network)
498-
499-
// When
500-
let completed: Bool = waitFor { promise in
501-
let action = SettingAction.synchronizeAdvancedSiteSettings(siteID: self.sampleSiteID) { _ in
502-
promise(true)
503-
}
504-
settingStore.onAction(action)
505-
}
506-
507-
508-
// Then
509-
XCTAssertTrue(completed)
510-
XCTAssertEqual(viewStorage.countObjects(ofType: Storage.SiteSetting.self), 2)
511-
512-
let sample = sampleAdvancedSiteSetting()
513-
let updated = viewStorage.loadSiteSetting(siteID: sampleSiteID, settingID: sample.settingID)?.toReadOnly()
514-
XCTAssertEqual(sample, updated)
515-
}
516-
517475

518476
// MARK: - SettingAction.retrieveSiteAPI
519477

@@ -596,41 +554,6 @@ final class SettingStoreTests: XCTestCase {
596554
XCTAssertTrue(result.isFailure)
597555
}
598556

599-
func test_getPaymentsPagePath_returns_page_when_setting_is_stored() throws {
600-
// Given
601-
storageManager.insertSampleSiteSetting(readOnlySiteSetting: sampleAdvancedSiteSetting())
602-
let store = SettingStore(dispatcher: dispatcher, storageManager: storageManager, network: network)
603-
604-
// When
605-
let result: Result<String, SettingStore.SettingError> = waitFor { promise in
606-
let action = SettingAction.getPaymentsPagePath(siteID: self.sampleSiteID) { result in
607-
promise(result)
608-
}
609-
store.onAction(action)
610-
}
611-
612-
// Then
613-
let paymentPath = try result.get()
614-
XCTAssertEqual(paymentPath, sampleAdvancedSiteSetting().value)
615-
}
616-
617-
func test_getPaymentsPagePath_returns_error_when_setting_is_not_stored() throws {
618-
// Given
619-
let store = SettingStore(dispatcher: dispatcher, storageManager: storageManager, network: network)
620-
621-
// When
622-
let result: Result<String, SettingStore.SettingError> = waitFor { promise in
623-
let action = SettingAction.getPaymentsPagePath(siteID: self.sampleSiteID) { result in
624-
promise(result)
625-
}
626-
store.onAction(action)
627-
}
628-
629-
// Then
630-
let error = try XCTUnwrap(result.failure)
631-
XCTAssertEqual(error, .paymentsPageNotFound)
632-
}
633-
634557
func test_retrieveCouponSetting_returns_correct_setting() throws {
635558
// Given
636559
let store = SettingStore(dispatcher: dispatcher, storageManager: storageManager, network: network)
@@ -910,26 +833,6 @@ private extension SettingStoreTests {
910833
settingGroupKey: SiteSettingGroup.product.rawValue)
911834
}
912835

913-
// MARK: - Advanced SiteSetting Samples
914-
915-
func sampleAdvancedSiteSetting() -> Networking.SiteSetting {
916-
return SiteSetting(siteID: sampleSiteID,
917-
settingID: "woocommerce_checkout_pay_endpoint",
918-
label: "Pay",
919-
settingDescription: "Endpoint for the pay page",
920-
value: "order-pay",
921-
settingGroupKey: SiteSettingGroup.advanced.rawValue)
922-
}
923-
924-
func sampleAdvancedSiteSettingMutated() -> Networking.SiteSetting {
925-
return SiteSetting(siteID: sampleSiteID,
926-
settingID: "woocommerce_checkout_pay_endpoint",
927-
label: "Pay",
928-
settingDescription: "Endpoint for the pay page",
929-
value: "order-pay-2",
930-
settingGroupKey: SiteSettingGroup.advanced.rawValue)
931-
}
932-
933836
// MARK: - SiteAPI Samples
934837

935838
func sampleSiteAPIWithWoo() -> Networking.SiteAPI {

0 commit comments

Comments
 (0)