// // PenguinItemPresenter.swift // foray // // Created by Nicholas Tay on 24/3/2022. // import Foundation class PenguinItemPresenter { func getData(onComplete: @escaping ([PenguinItemViewModel]) -> ()) { ForayNetworkManager.shared.get( url: "https://users.windblume.net/~nick/upload/dummy.json", onComplete: { (apiItems: [PenguinItemModel]) in onComplete(self.transform(models: apiItems)) }) } func transform(models: [PenguinItemModel]) -> [PenguinItemViewModel] { let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" return models .sorted { $0.releaseDate < $1.releaseDate } .map { PenguinItemViewModel(type: $0.type, releaseDateFormatted: dateFormatter.string(from: $0.releaseDate), year: Calendar.current.component(.year, from: $0.releaseDate), id: $0.id, name: $0.name) } } }