Skip to content

Commit 76cd903

Browse files
committed
Add action to create manual order remotely
1 parent e5f3bdd commit 76cd903

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

Yosemite/Yosemite/Actions/OrderAction.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,8 @@ public enum OrderAction: Action {
6868
/// Creates a simple payments order with a specific amount value and no tax.
6969
///
7070
case createSimplePaymentsOrder(siteID: Int64, amount: String, onCompletion: (Result<Order, Error>) -> Void)
71+
72+
/// Creates a manual order with the provided order details.
73+
///
74+
case createOrder(siteID: Int64, order: Order, onCompletion: (Result<Order, Error>) -> Void)
7175
}

Yosemite/Yosemite/Stores/OrderStore.swift

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ public class OrderStore: Store {
6464

6565
case let .createSimplePaymentsOrder(siteID, amount, onCompletion):
6666
createSimplePaymentsOrder(siteID: siteID, amount: amount, onCompletion: onCompletion)
67+
case let .createOrder(siteID, order, onCompletion):
68+
createOrder(siteID: siteID, order: order, onCompletion: onCompletion)
6769
}
6870
}
6971
}
@@ -263,6 +265,21 @@ private extension OrderStore {
263265
}
264266
}
265267

268+
/// Creates a manual order with the provided order details.
269+
///
270+
func createOrder(siteID: Int64, order: Order, onCompletion: @escaping (Result<Order, Error>) -> Void) {
271+
remote.createOrder(siteID: siteID, order: order, fields: []) { [weak self] result in
272+
switch result {
273+
case .success(let order):
274+
self?.upsertStoredOrdersInBackground(readOnlyOrders: [order], onCompletion: {
275+
onCompletion(result)
276+
})
277+
case .failure:
278+
onCompletion(result)
279+
}
280+
}
281+
}
282+
266283
/// Updates an Order with the specified Status.
267284
///
268285
func updateOrder(siteID: Int64, orderID: Int64, status: OrderStatusEnum, onCompletion: @escaping (Error?) -> Void) {

0 commit comments

Comments
 (0)