remove extra custom protocol

This commit is contained in:
Kyle Matthew Hedden 2020-07-01 11:26:52 -04:00
parent 1591ab2fdb
commit 616c242b29

View File

@ -11,10 +11,8 @@ import Foundation
public protocol TemplateProtocol: AnyObject {
associatedtype TemplateModel: TemplateModelProtocol
var templateModel: TemplateModel? { get set }
}
public protocol CustomTemplateDecoder {
func decodeTemplate(using decoder: JSONDecoder, from data: Data) throws -> TemplateModelProtocol
func decodeTemplate(using decoder: JSONDecoder, from data: Data) throws -> TemplateModel
}
public extension TemplateProtocol where Self: ViewController {
@ -24,14 +22,12 @@ public extension TemplateProtocol where Self: ViewController {
let data = try JSONSerialization.data(withJSONObject: pageJSON)
let decoder = JSONDecoder()
try decoder.add(delegateObject: delegateObjectIVar)
let templateModel: TemplateModel
if let customDecoder = self as? CustomTemplateDecoder {
templateModel = try customDecoder.decodeTemplate(using: decoder, from: data) as! Self.TemplateModel
} else {
templateModel = try decoder.decode(TemplateModel.self, from: data)
}
self.templateModel = templateModel
self.templateModel = try decodeTemplate(using: decoder, from: data)
self.pageModel = templateModel as? MVMControllerModelProtocol
}
func decodeTemplate(using decoder: JSONDecoder, from data: Data) throws -> TemplateModel {
return try decoder.decode(TemplateModel.self, from: data)
}
}