Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// 1
- protocol LaunchesBusinessLogic {
- func fetchLaunches(request: LaunchesPage.FetchLaunches.Request)
- ...
- }
- /// 2
- protocol LaunchesDataStore {
- var launches: [Launch]? { get }
- }
- final class LaunchesInteractor: LaunchesBusinessLogic, LaunchesDataStore {
- var presenter: LaunchesPresentationLogic?
- var worker = LaunchesWorker()
- var launches: [Launch]?
- let debugMode = false
- // MARK: Fetchs launch to display during page loading
- func fetchLaunches(request: LaunchesPage.FetchLaunches.Request) {
- /// 3
- var response: LaunchesPage.FetchLaunches.Response!
- /// 4
- worker.launchesDataManager.getLaunches(limit: nil, offset: nil).done { launches in
- self.launches = launches
- let filteredOrders = self.getFilteredByTypeLaunches(launches)
- response = LaunchesPage.FetchLaunches.Response(launches: filteredOrders, error: nil)
- }.catch { error in
- response = LaunchesPage.FetchLaunches.Response(launches: nil, error: LaunchErrors.couldNotLoadLaunches(error: error.localizedDescription))
- }.finally {
- /// 5
- self.presenter?.presentLaunches(response: response)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement