Added response to RequestError
This commit is contained in:
parent
22ce7654db
commit
ad8fe894bf
|
|
@ -32,8 +32,8 @@ import Alamofire
|
|||
public enum RequestError: Error {
|
||||
|
||||
case noConnection
|
||||
case network(error: Error)
|
||||
case invalidResponse(error: AFError)
|
||||
case mapping(error: Error, response: Any)
|
||||
case network(error: Error, response: Data)
|
||||
case invalidResponse(error: AFError, response: Data)
|
||||
case mapping(error: Error, response: Data)
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,23 +61,24 @@ public extension Reactive where Base: DataRequest {
|
|||
return responseData()
|
||||
.observeOn(SerialDispatchQueueScheduler(queue: queue, internalSerialQueueName: queue.label))
|
||||
.catchError {
|
||||
let response = self.base.delegate.data ?? Data()
|
||||
switch $0 {
|
||||
case let urlError as URLError:
|
||||
switch urlError.code {
|
||||
case .notConnectedToInternet:
|
||||
throw RequestError.noConnection
|
||||
default:
|
||||
throw RequestError.network(error: urlError)
|
||||
throw RequestError.network(error: urlError, response: response)
|
||||
}
|
||||
case let afError as AFError:
|
||||
switch afError {
|
||||
case .responseSerializationFailed, .responseValidationFailed:
|
||||
throw RequestError.invalidResponse(error: afError)
|
||||
throw RequestError.invalidResponse(error: afError, response: response)
|
||||
default:
|
||||
throw RequestError.network(error: afError)
|
||||
throw RequestError.network(error: afError, response: response)
|
||||
}
|
||||
default:
|
||||
throw RequestError.network(error: $0)
|
||||
throw RequestError.network(error: $0, response: response)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue