Skip to content

Commit 3b82a1b

Browse files
committed
Add support to create order
1 parent 8c01db6 commit 3b82a1b

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Creation/Synchronizer/LocalOrderSynchronizer.swift

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import Combine
66
///
77
final class LocalOrderSynchronizer: OrderSynchronizer {
88

9+
// MARK: Outputs
10+
911
@Published private(set) var state: OrderSyncState = .synced
1012

1113
var statePublisher: Published<OrderSyncState>.Publisher {
@@ -18,6 +20,8 @@ final class LocalOrderSynchronizer: OrderSynchronizer {
1820
$order
1921
}
2022

23+
// MARK: Inputs
24+
2125
var setStatus = PassthroughSubject<OrderStatusEnum, Never>()
2226

2327
var setProduct = PassthroughSubject<OrderSyncProductInput, Never>()
@@ -28,9 +32,26 @@ final class LocalOrderSynchronizer: OrderSynchronizer {
2832

2933
var setFee = PassthroughSubject<OrderFeeLine?, Never>()
3034

35+
// MARK: Private properties
36+
37+
private let siteID: Int64
38+
39+
private let stores: StoresManager
40+
41+
// MARK: Initializers
42+
43+
init(siteID: Int64, stores: StoresManager = ServiceLocator.stores) {
44+
self.siteID = siteID
45+
self.stores = stores
46+
}
47+
48+
// MARK: Methods
3149
func retrySync() {
50+
// No op
3251
}
3352

34-
func commitAllChanges(onCompletion: (Result<Order, Error>) -> Void) {
53+
func commitAllChanges(onCompletion: @escaping (Result<Order, Error>) -> Void) {
54+
let action = OrderAction.createOrder(siteID: siteID, order: order, onCompletion: onCompletion)
55+
stores.dispatch(action)
3556
}
3657
}

0 commit comments

Comments
 (0)