diff --git a/GMERemittance/Module/Home/Application Logic/Interactor/HomeInteractor.swift b/GMERemittance/Module/Home/Application Logic/Interactor/HomeInteractor.swift index 3c184dd6..9294d71d 100644 --- a/GMERemittance/Module/Home/Application Logic/Interactor/HomeInteractor.swift +++ b/GMERemittance/Module/Home/Application Logic/Interactor/HomeInteractor.swift @@ -30,6 +30,7 @@ extension HomeInteractor: HomeInteractorInput { func fetchUserInfo() { self.service.fetchUserInfo(success: { user in self.output?.show(model: user) + }) { error in self.output?.show(error: error) } diff --git a/GMERemittance/Module/Home/Application Logic/Service/HomeServiceType.swift b/GMERemittance/Module/Home/Application Logic/Service/HomeServiceType.swift index eeaba84f..7c732159 100644 --- a/GMERemittance/Module/Home/Application Logic/Service/HomeServiceType.swift +++ b/GMERemittance/Module/Home/Application Logic/Service/HomeServiceType.swift @@ -14,11 +14,11 @@ protocol HomeServiceType: class, UserInfoService { protocol UserInfoService: ApiServiceType { - func fetchUserInfo(success: @escaping (User?) -> (), failure: @escaping (Error) -> ()) + func fetchUserInfo(success: @escaping (User) -> (), failure: @escaping (Error) -> ()) } extension UserInfoService { - func fetchUserInfo(success: @escaping (User?) -> (), failure: @escaping (Error) -> ()) { + func fetchUserInfo(success: @escaping (User) -> (), failure: @escaping (Error) -> ()) { // let params = [ "userId": userId, "password": password ] let url = baseUrl + "" auth.request(method: .post, url: url, params: nil, success: { (response: UserContainer ) in @@ -26,8 +26,14 @@ extension UserInfoService { let error = NSError.init(domain: "Network", code: 0, userInfo: [NSLocalizedDescriptionKey : response.message ?? ""]) failure(error) }else { - let model = response.data - success(model) + if let model = response.data { + success(model) + }else { + let error = NSError.init(domain: "UserInfoService", code: 0, userInfo: [NSLocalizedDescriptionKey : "Failed to map info from server"]) + failure(error) + } + + } }) { (error) in failure(error) diff --git a/GMERemittance/Module/Home/User Interface/Presenter/HomePresenter.swift b/GMERemittance/Module/Home/User Interface/Presenter/HomePresenter.swift index cd91ee6b..c400d73f 100644 --- a/GMERemittance/Module/Home/User Interface/Presenter/HomePresenter.swift +++ b/GMERemittance/Module/Home/User Interface/Presenter/HomePresenter.swift @@ -51,12 +51,12 @@ extension HomePresenter: HomeModuleInterface { extension HomePresenter: HomeInteractorOutput { func show(model: User) { - self.view?.showLoading() + self.view?.endRefreshing() self.view?.show(model: model) } func show(error: Error) { - self.view?.hideLoading() + self.view?.endRefreshing() self.view?.show(error: error.localizedDescription) } } diff --git a/GMERemittance/Module/Home/User Interface/View/HomeViewController.swift b/GMERemittance/Module/Home/User Interface/View/HomeViewController.swift index c96832ad..1033f56a 100644 --- a/GMERemittance/Module/Home/User Interface/View/HomeViewController.swift +++ b/GMERemittance/Module/Home/User Interface/View/HomeViewController.swift @@ -135,12 +135,6 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { presenter?.refreshData() } - func endRefreshing() { - if self.tableView.refreshControl?.isRefreshing == true { - self.tableView.refreshControl?.endRefreshing() - self.tableView.contentOffset.y = 0 - } - } @objc func showNotification(){ performSegue(withIdentifier: "notification", sender: nil) @@ -323,6 +317,13 @@ extension HomeViewController: HomeViewInterface { func hideLoading() { self.hideProgressHud() } + + func endRefreshing() { + if self.tableView.refreshControl?.isRefreshing == true { + self.tableView.refreshControl?.endRefreshing() + self.tableView.contentOffset.y = 0 + } + } } diff --git a/GMERemittance/Module/Home/User Interface/View/HomeViewInterface.swift b/GMERemittance/Module/Home/User Interface/View/HomeViewInterface.swift index bb7d3ebc..73f3735f 100644 --- a/GMERemittance/Module/Home/User Interface/View/HomeViewInterface.swift +++ b/GMERemittance/Module/Home/User Interface/View/HomeViewInterface.swift @@ -11,4 +11,5 @@ protocol HomeViewInterface: class { func show(error: String) func showLoading() func hideLoading() + func endRefreshing() }