Skip to content

Commit fd51128

Browse files
committed
Update Networking with new API fields
1 parent 57fdc6e commit fd51128

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

Networking/Networking/Model/Order.swift

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
1010
public let customerID: Int64
1111
public let orderKey: String
1212

13+
public let isEditable: Bool
14+
public let needsPayment: Bool
15+
public let needsProcessing: Bool
1316
public let number: String
1417
/// The Order status.
1518
///
@@ -50,6 +53,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
5053
parentID: Int64,
5154
customerID: Int64,
5255
orderKey: String,
56+
isEditable: Bool,
57+
needsPayment: Bool,
58+
needsProcessing: Bool,
5359
number: String,
5460
status: OrderStatusEnum,
5561
currency: String,
@@ -82,6 +88,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
8288
self.customerID = customerID
8389
self.orderKey = orderKey
8490

91+
self.isEditable = isEditable
92+
self.needsPayment = needsPayment
93+
self.needsProcessing = needsProcessing
8594
self.number = number
8695
self.status = status
8796
self.currency = currency
@@ -127,6 +136,11 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
127136
let customerID = try container.decode(Int64.self, forKey: .customerID)
128137
let orderKey = try container.decode(String.self, forKey: .orderKey)
129138

139+
// TODO: Update with local fallback implementation https://github.com/woocommerce/woocommerce-ios/issues/6977
140+
let isEditable = try container.decodeIfPresent(Bool.self, forKey: .isEditable) ?? false
141+
let needsPayment = try container.decodeIfPresent(Bool.self, forKey: .needsPayment) ?? false
142+
let needsProcessing = try container.decodeIfPresent(Bool.self, forKey: .needsProcessing) ?? false
143+
130144
let number = try container.decode(String.self, forKey: .number)
131145
let status = try container.decode(OrderStatusEnum.self, forKey: .status)
132146

@@ -183,6 +197,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
183197
parentID: parentID,
184198
customerID: customerID,
185199
orderKey: orderKey,
200+
isEditable: isEditable,
201+
needsPayment: needsPayment,
202+
needsProcessing: needsProcessing,
186203
number: number,
187204
status: status,
188205
currency: currency,
@@ -216,6 +233,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
216233
parentID: 0,
217234
customerID: 0,
218235
orderKey: "",
236+
isEditable: false,
237+
needsPayment: false,
238+
needsProcessing: false,
219239
number: "",
220240
status: .pending,
221241
currency: "",
@@ -255,6 +275,9 @@ internal extension Order {
255275
case customerID = "customer_id"
256276
case orderKey = "order_key"
257277

278+
case isEditable = "is_editable"
279+
case needsPayment = "needs_payment"
280+
case needsProcessing = "needs_processing"
258281
case number = "number"
259282
case status = "status"
260283
case currency = "currency"
@@ -297,6 +320,9 @@ extension Order: Equatable {
297320
lhs.parentID == rhs.parentID &&
298321
lhs.customerID == rhs.customerID &&
299322
lhs.orderKey == rhs.orderKey &&
323+
lhs.isEditable == rhs.isEditable &&
324+
lhs.needsPayment == rhs.needsPayment &&
325+
lhs.needsProcessing == rhs.needsProcessing &&
300326
lhs.number == rhs.number &&
301327
lhs.status == rhs.status &&
302328
lhs.dateCreated == rhs.dateCreated &&

0 commit comments

Comments
 (0)