From 07a6eb8325d3b67d998003d3fe5ab34e1a72f106 Mon Sep 17 00:00:00 2001 From: Nicholas Tay Date: Fri, 25 Mar 2022 09:52:06 +1100 Subject: getData -> fetch, try threading, move logic around --- foray/Presenters/PenguinItemPresenter.swift | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'foray/Presenters/PenguinItemPresenter.swift') diff --git a/foray/Presenters/PenguinItemPresenter.swift b/foray/Presenters/PenguinItemPresenter.swift index 0420825..2f3730f 100644 --- a/foray/Presenters/PenguinItemPresenter.swift +++ b/foray/Presenters/PenguinItemPresenter.swift @@ -8,12 +8,16 @@ 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 fetch(receiver: @escaping ([PenguinItemViewModel]) -> ()) { + ForayNetworkManager.shared + .fetch(url: "https://users.windblume.net/~nick/upload/dummy.json") { (apiItems: [PenguinItemModel]) in + // Callback to main thread here + // There probably is a nicer way to do it, but we will DispatchQueue it back + // from the Presenter-level for now (main thread from VC onwards) + DispatchQueue.main.async { + receiver(self.transform(models: apiItems)) + } + } } func transform(models: [PenguinItemModel]) -> [PenguinItemViewModel] { -- cgit