Skip to content

Commit 9b2a705

Browse files
committed
Use optional String instead of Int64 to avoid defaulting to 0 that could lead to unexpected behavior.
1 parent ff73fb2 commit 9b2a705

File tree

6 files changed

+14
-12
lines changed

6 files changed

+14
-12
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ extension OrderItemRefund {
493493
name: CopiableProp<String> = .copy,
494494
productID: CopiableProp<Int64> = .copy,
495495
variationID: CopiableProp<Int64> = .copy,
496-
refundedItemID: CopiableProp<Int64> = .copy,
496+
refundedItemID: CopiableProp<String> = .copy,
497497
quantity: CopiableProp<Decimal> = .copy,
498498
price: CopiableProp<NSDecimalNumber> = .copy,
499499
sku: NullableCopiableProp<String> = .copy,

Networking/Networking/Model/Refund/OrderItemRefund.swift

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public struct OrderItemRefund: Codable, Equatable, GeneratedFakeable, GeneratedC
88
public let name: String
99
public let productID: Int64
1010
public let variationID: Int64
11-
public let refundedItemID: Int64?
11+
public let refundedItemID: String?
1212
public let quantity: Decimal
1313

1414
/// Price is a currency.
@@ -31,7 +31,7 @@ public struct OrderItemRefund: Codable, Equatable, GeneratedFakeable, GeneratedC
3131
name: String,
3232
productID: Int64,
3333
variationID: Int64,
34-
refundedItemID: Int64?,
34+
refundedItemID: String?,
3535
quantity: Decimal,
3636
price: NSDecimalNumber,
3737
sku: String?,
@@ -80,11 +80,7 @@ public struct OrderItemRefund: Codable, Equatable, GeneratedFakeable, GeneratedC
8080
let totalTax = try container.decode(String.self, forKey: .totalTax)
8181

8282
let allOrderItemRefundMetaData = try container.decode([OrderItemRefundMetaData].self, forKey: .metadata)
83-
84-
var refundedItemID: Int64?
85-
if let refundedItemIDString = allOrderItemRefundMetaData.first(where: { $0.key == "_refunded_item_id" })?.value {
86-
refundedItemID = Int64(refundedItemIDString)
87-
}
83+
let refundedItemID = allOrderItemRefundMetaData.first(where: { $0.key == "_refunded_item_id" })?.value
8884

8985
// initialize the struct
9086
self.init(itemID: itemID,

Storage/Storage/Model/OrderItemRefund+CoreDataProperties.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ extension OrderItemRefund {
1212
@NSManaged public var name: String?
1313
@NSManaged public var productID: Int64
1414
@NSManaged public var variationID: Int64
15-
@NSManaged public var refundedItemID: Int64
15+
@NSManaged public var refundedItemID: String?
1616
@NSManaged public var quantity: NSDecimalNumber?
1717
@NSManaged public var price: NSDecimalNumber?
1818
@NSManaged public var sku: String?

Storage/Storage/Model/WooCommerce.xcdatamodeld/Model 70.xcdatamodel/contents

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@
210210
<attribute name="price" optional="YES" attributeType="Decimal" defaultValueString="0.0"/>
211211
<attribute name="productID" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
212212
<attribute name="quantity" optional="YES" attributeType="Decimal" defaultValueString="0.0"/>
213-
<attribute name="refundedItemID" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
213+
<attribute name="refundedItemID" optional="YES" attributeType="String"/>
214214
<attribute name="sku" optional="YES" attributeType="String"/>
215215
<attribute name="subtotal" optional="YES" attributeType="String"/>
216216
<attribute name="subtotalTax" optional="YES" attributeType="String"/>

WooCommerce/Classes/Tools/AggregateData/AggregateDataHelper.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,13 @@ final class AggregateDataHelper {
4949
.compactMap { currency.convertToDecimal($0.total) }
5050
.reduce(NSDecimalNumber(value: 0), { $0.adding($1) })
5151

52-
let attributes = orderItems.first(where: { $0.itemID == item.refundedItemID })?.attributes ?? []
52+
let attributes = orderItems.first(where: {
53+
guard let refundedItemID = item.refundedItemID else {
54+
return false
55+
}
56+
57+
return $0.itemID == Int64(refundedItemID)
58+
})?.attributes ?? []
5359

5460
return AggregateOrderItem(
5561
productID: item.productID,

Yosemite/Yosemite/Model/Storage/OrderItemRefund+ReadOnlyConvertible.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ extension Storage.OrderItemRefund: ReadOnlyConvertible {
1313
name = orderItemRefund.name
1414
productID = orderItemRefund.productID
1515
variationID = orderItemRefund.variationID
16-
refundedItemID = orderItemRefund.refundedItemID ?? 0
16+
refundedItemID = orderItemRefund.refundedItemID
1717
quantity = NSDecimalNumber(decimal: orderItemRefund.quantity)
1818
price = orderItemRefund.price
1919
sku = orderItemRefund.sku

0 commit comments

Comments
 (0)