diff --git a/Classes/Repository/RepositoryCodeDirectoryViewController.swift b/Classes/Repository/RepositoryCodeDirectoryViewController.swift index 767031a44..50eb5bc1a 100644 --- a/Classes/Repository/RepositoryCodeDirectoryViewController.swift +++ b/Classes/Repository/RepositoryCodeDirectoryViewController.swift @@ -9,6 +9,7 @@ import UIKit import IGListKit import TUSafariActivity +import Squawk final class RepositoryCodeDirectoryViewController: BaseListViewController, BaseListViewControllerDataSource, @@ -123,7 +124,8 @@ RepositoryBranchUpdatable { path: path.path ) { [weak self] (result) in switch result { - case .error: + case .error(let error): + Squawk.show(error: error) self?.error(animated: trueUnlessReduceMotionEnabled) case .success(let files): self?.files = files diff --git a/Classes/Repository/RepositoryOverviewViewController.swift b/Classes/Repository/RepositoryOverviewViewController.swift index db92ddd70..bf1bce712 100644 --- a/Classes/Repository/RepositoryOverviewViewController.swift +++ b/Classes/Repository/RepositoryOverviewViewController.swift @@ -9,6 +9,7 @@ import UIKit import IGListKit import GitHubAPI +import Squawk class HackScrollIndicatorInsetsCollectionView: UICollectionView { override var scrollIndicatorInsets: UIEdgeInsets { @@ -97,7 +98,8 @@ RepositoryBranchUpdatable { self?.update(animated: trueUnlessReduceMotionEnabled) } } - case .failure: + case .failure(let error): + Squawk.show(error: error) self?.error(animated: trueUnlessReduceMotionEnabled) } } diff --git a/Local Pods/GitHubAPI/GitHubAPI/ClientError.swift b/Local Pods/GitHubAPI/GitHubAPI/ClientError.swift index 407ad1ce7..34815319f 100644 --- a/Local Pods/GitHubAPI/GitHubAPI/ClientError.swift +++ b/Local Pods/GitHubAPI/GitHubAPI/ClientError.swift @@ -11,6 +11,17 @@ import Foundation public enum ClientError: Error { case unauthorized case mismatchedInput - case outputNil(Error?) - case network(Error?) +} + +extension ClientError: LocalizedError { + + public var localizedDescription: String { + switch self { + case .unauthorized: + return NSLocalizedString("You are unauthorized to make this request.", comment: "") + case .mismatchedInput: + return NSLocalizedString("There was an error parsing this response.", comment: "") + } + } + } diff --git a/Local Pods/GitHubAPI/GitHubAPI/Processing.swift b/Local Pods/GitHubAPI/GitHubAPI/Processing.swift index 7099fd0a2..55a9ffa53 100644 --- a/Local Pods/GitHubAPI/GitHubAPI/Processing.swift +++ b/Local Pods/GitHubAPI/GitHubAPI/Processing.swift @@ -14,17 +14,17 @@ internal func processResponse( response: HTTPURLResponse? = nil, error: Error? = nil ) -> Result { + guard error == nil else { + return .failure(error) + } guard let input = input as? T.ResponseType.InputType else { return .failure(ClientError.mismatchedInput) } - guard error == nil else { - return .failure(ClientError.network(error)) - } do { let output = try T.ResponseType(input: input, response: response) return .success(output) } catch { - return .failure(ClientError.outputNil(error)) + return .failure(error) } }