Fix to models check

This commit is contained in:
Pfeil, Scott Robert 2020-04-13 17:19:50 -04:00
parent 0d0a6c4a81
commit cd374bfacc

View File

@ -205,19 +205,18 @@ public extension UnkeyedDecodingContainer {
// Iterate and decode each.
while !containerCopy.isAtEnd {
let nestedContainer = try containerCopy.nestedContainer(keyedBy: AnyCodingKey.self)
if let identifier = try nestedContainer.decodeIfPresent(String.self, forKey: typeCodingKey) {
guard let type = ModelRegistry.getType(for: identifier, with: T.self) else {
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderErrorModelNotMapped: \(identifier)")
throw ModelRegistry.Error.decoderErrorModelNotMapped
}
// Now get the decoder to use for the type
let decoder = try self.superDecoder()
if let model = try type.init(from: decoder) as? T {
models.append(model)
} else {
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderError: \(typeCodingKey)")
throw ModelRegistry.Error.decoderError
}
let identifier = try nestedContainer.decode(String.self, forKey: typeCodingKey)
guard let type = ModelRegistry.getType(for: identifier, with: T.self) else {
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderErrorModelNotMapped: \(identifier)")
throw ModelRegistry.Error.decoderErrorModelNotMapped
}
// Now get the decoder to use for the type
let decoder = try self.superDecoder()
if let model = try type.init(from: decoder) as? T {
models.append(model)
} else {
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderError: \(typeCodingKey)")
throw ModelRegistry.Error.decoderError
}
}
return models