@@ -58,7 +58,7 @@ public struct OCKOutcomeValue: Codable, Equatable, OCKObjectCompatible, CustomSt
58
58
case
59
59
kind, units, uuid, value, type, index,
60
60
createdDate, updatedDate, schemaVersion, tags,
61
- groupIdentifier, remoteID, userInfo, source, timezone
61
+ groupIdentifier, remoteID, userInfo, source, timezone, asset , notes
62
62
}
63
63
64
64
public init ( from decoder: Decoder ) throws {
@@ -80,29 +80,31 @@ public struct OCKOutcomeValue: Codable, Equatable, OCKObjectCompatible, CustomSt
80
80
value = try container. decode ( Date . self, forKey: . value)
81
81
}
82
82
83
- kind = try container. decode ( String ? . self, forKey: . kind)
84
- units = try container. decode ( String ? . self, forKey: . units)
85
- index = try container. decode ( Int ? . self, forKey: . index)
86
- uuid = try container. decode ( UUID ? . self, forKey: . uuid)
87
- createdDate = try container. decode ( Date ? . self, forKey: . createdDate)
88
- updatedDate = try container. decode ( Date ? . self, forKey: . updatedDate)
89
- schemaVersion = try container. decode ( OCKSemanticVersion ? . self, forKey: . schemaVersion)
90
- groupIdentifier = try container. decode ( String ? . self, forKey: . groupIdentifier)
91
- tags = try container. decode ( [ String] ? . self, forKey: . tags)
92
- remoteID = try container. decode ( String ? . self, forKey: . remoteID)
93
- source = try container. decode ( String ? . self, forKey: . source)
94
- userInfo = try container. decode ( [ String: String] ? . self, forKey: . userInfo)
83
+ kind = try container. decodeIfPresent ( String . self, forKey: . kind)
84
+ units = try container. decodeIfPresent ( String . self, forKey: . units)
85
+ index = try container. decodeIfPresent ( Int . self, forKey: . index)
86
+ uuid = try container. decodeIfPresent ( UUID . self, forKey: . uuid)
87
+ createdDate = try container. decodeIfPresent ( Date . self, forKey: . createdDate)
88
+ updatedDate = try container. decodeIfPresent ( Date . self, forKey: . updatedDate)
89
+ schemaVersion = try container. decodeIfPresent ( OCKSemanticVersion . self, forKey: . schemaVersion)
90
+ groupIdentifier = try container. decodeIfPresent ( String . self, forKey: . groupIdentifier)
91
+ tags = try container. decodeIfPresent ( [ String ] . self, forKey: . tags)
92
+ remoteID = try container. decodeIfPresent ( String . self, forKey: . remoteID)
93
+ source = try container. decodeIfPresent ( String . self, forKey: . source)
94
+ userInfo = try container. decodeIfPresent ( [ String : String ] . self, forKey: . userInfo)
95
95
timezone = try container. decode ( TimeZone . self, forKey: . timezone)
96
+ asset = try container. decodeIfPresent ( String . self, forKey: . asset)
97
+ notes = try container. decodeIfPresent ( [ OCKNote ] . self, forKey: . notes)
96
98
}
97
99
98
100
public func encode( to encoder: Encoder ) throws {
99
101
var container = encoder. container ( keyedBy: CodingKeys . self)
100
102
101
103
try container. encode ( type, forKey: . type)
102
- try container. encode ( kind, forKey: . kind)
103
- try container. encode ( units, forKey: . units)
104
- try container. encode ( index, forKey: . index)
105
- try container. encode ( uuid, forKey: . uuid)
104
+ try container. encodeIfPresent ( kind, forKey: . kind)
105
+ try container. encodeIfPresent ( units, forKey: . units)
106
+ try container. encodeIfPresent ( index, forKey: . index)
107
+ try container. encodeIfPresent ( uuid, forKey: . uuid)
106
108
107
109
var encodedValue = false
108
110
if let value = integerValue { try container. encode ( value, forKey: . value) ; encodedValue = true } else
@@ -117,14 +119,16 @@ public struct OCKOutcomeValue: Codable, Equatable, OCKObjectCompatible, CustomSt
117
119
throw EncodingError . invalidValue ( value, EncodingError . Context ( codingPath: [ CodingKeys . value] , debugDescription: message) )
118
120
}
119
121
120
- try container. encode ( updatedDate, forKey: . updatedDate)
121
- try container. encode ( createdDate, forKey: . createdDate)
122
- try container. encode ( schemaVersion, forKey: . schemaVersion)
123
- try container. encode ( groupIdentifier, forKey: . groupIdentifier)
124
- try container. encode ( tags, forKey: . tags)
125
- try container. encode ( remoteID, forKey: . remoteID)
126
- try container. encode ( source, forKey: . source)
127
- try container. encode ( userInfo, forKey: . userInfo)
122
+ try container. encodeIfPresent ( updatedDate, forKey: . updatedDate)
123
+ try container. encodeIfPresent ( createdDate, forKey: . createdDate)
124
+ try container. encodeIfPresent ( schemaVersion, forKey: . schemaVersion)
125
+ try container. encodeIfPresent ( groupIdentifier, forKey: . groupIdentifier)
126
+ try container. encodeIfPresent ( tags, forKey: . tags)
127
+ try container. encodeIfPresent ( remoteID, forKey: . remoteID)
128
+ try container. encodeIfPresent ( source, forKey: . source)
129
+ try container. encodeIfPresent ( userInfo, forKey: . userInfo)
130
+ try container. encodeIfPresent ( asset, forKey: . asset)
131
+ try container. encodeIfPresent ( notes, forKey: . notes)
128
132
try container. encode ( timezone, forKey: . timezone)
129
133
}
130
134
0 commit comments