@@ -13,23 +13,12 @@ public struct Order: Decodable {
1313 public let currency : String
1414 public let customerNote : String ?
1515
16+ public let dateCreated : Date
1617 public let dateModified : Date
1718 public let datePaid : Date ?
1819
1920 private let dateCreatedString : String ?
2021 private let dateModifiedString : String ?
21-
22- private( set) public lazy var dateCreated : Date = {
23- let format = ISO8601DateFormatter ( )
24-
25- guard let dateString = dateCreatedString else {
26- return Date ( )
27- }
28-
29- if let date = format. date ( from: dateString) {
30- return date
31- }
32- } ( )
3322
3423 public let discountTotal : String
3524 public let discountTax : String
@@ -52,12 +41,36 @@ public struct Order: Decodable {
5241 self . currency = currency
5342 self . customerNote = customerNote
5443
55- self . dateCreatedString = dateCreatedString
44+ self . dateCreatedString = dateCreatedString == nil ? " " : dateCreatedString
5645 self . dateModifiedString = dateModifiedString
5746 self . datePaid = datePaid
5847
48+ let format = ISO8601DateFormatter ( )
49+ var dateCreated : Date ?
50+ if let createdString = dateCreatedString {
51+ dateCreated = format. date ( from: createdString)
52+ }
53+
54+ if let dateCreated = dateCreated {
55+ self . dateCreated = dateCreated
56+ } else {
57+ self . dateCreated = Date ( )
58+ }
59+
60+ var dateModified : Date ?
61+ if let modifiedString = dateModifiedString {
62+ dateModified = format. date ( from: modifiedString)
63+ }
64+
65+ if let dateModified = dateModified {
66+ self . dateModified = dateModified
67+ } else {
68+ self . dateModified = Date ( )
69+ }
70+
5971 self . discountTotal = discountTotal
6072 self . discountTax = discountTax
73+ self . shippingTotal = shippingTotal
6174 self . shippingTax = shippingTax
6275 self . total = total
6376 self . totalTax = totalTax
@@ -78,9 +91,9 @@ public struct Order: Decodable {
7891 let currency = try container. decode ( String . self, forKey: . currency)
7992 let customerNote = try container. decode ( String . self, forKey: . customerNote)
8093
81- let dateCreatedString = try container. decode ( String . self, forKey: . dateCreatedString)
82- let dateModifiedString = try container. decode ( String . self, forKey: . dateModifiedString)
83- let datePaid = try container. decode ( Date . self, forKey: . datePaid)
94+ let dateCreatedString = try container. decodeIfPresent ( String . self, forKey: . dateCreatedString)
95+ let dateModifiedString = try container. decodeIfPresent ( String . self, forKey: . dateModifiedString)
96+ let datePaid = try container. decodeIfPresent ( Date . self, forKey: . datePaid)
8497
8598 let discountTotal = try container. decode ( String . self, forKey: . discountTotal)
8699 let discountTax = try container. decode ( String . self, forKey: . discountTax)
0 commit comments