diff --git a/Sources/Enums/RequestError.swift b/Sources/Enums/RequestError.swift index d6e3ab30..2a1c4147 100644 --- a/Sources/Enums/RequestError.swift +++ b/Sources/Enums/RequestError.swift @@ -33,7 +33,7 @@ public enum RequestError: Error { case noConnection case network(error: Error, response: Data?) - case invalidResponse(error: AFError, response: Data) + case invalidResponse(error: AFError, response: Data?) case mapping(error: Error, response: Data) } diff --git a/Sources/Extensions/Alamofire/SessionManager+Extensions.swift b/Sources/Extensions/Alamofire/SessionManager+Extensions.swift index 19929907..9dc40f49 100644 --- a/Sources/Extensions/Alamofire/SessionManager+Extensions.swift +++ b/Sources/Extensions/Alamofire/SessionManager+Extensions.swift @@ -79,11 +79,11 @@ public extension Reactive where Base: SessionManager { private extension ObservableType { func catchErrorAndWrap(with request: DataRequest? = nil) -> Observable { - return catchError { + return catchError { error in let resultError: RequestError let response = request?.delegate.data - switch $0 { + switch error { case let requestError as RequestError: resultError = requestError case let urlError as URLError: @@ -96,12 +96,12 @@ private extension ObservableType { case let afError as AFError: switch afError { case .responseSerializationFailed, .responseValidationFailed: - resultError = .invalidResponse(error: afError, response: response ?? Data()) + resultError = .invalidResponse(error: afError, response: response) default: resultError = .network(error: afError, response: response) } default: - resultError = .network(error: $0, response: response) + resultError = .network(error: error, response: response) } throw resultError