commit
fd9d50b8de
|
|
@ -60,7 +60,7 @@ open class NetworkService {
|
|||
/// - Returns: Observable of tuple containing (HTTPURLResponse, ObservableMappable)
|
||||
public func rxObservableRequest<T: ObservableMappable>(with parameters: ApiRequestParameters,
|
||||
decoder: JSONDecoder = JSONDecoder())
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> {
|
||||
-> Observable<SessionManager.ModelResponse<T>> {
|
||||
|
||||
return sessionManager.rx.responseObservableModel(requestParameters: parameters,
|
||||
decoder: decoder)
|
||||
|
|
@ -73,7 +73,7 @@ open class NetworkService {
|
|||
/// - Parameter decoder: json decoder to decode response data
|
||||
/// - Returns: Observable of tuple containing (HTTPURLResponse, ImmutableMappable)
|
||||
public func rxRequest<T: Decodable>(with parameters: ApiRequestParameters, decoder: JSONDecoder = JSONDecoder())
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> {
|
||||
-> Observable<SessionManager.ModelResponse<T>> {
|
||||
|
||||
return sessionManager.rx.responseModel(requestParameters: parameters,
|
||||
decoder: decoder)
|
||||
|
|
@ -85,7 +85,7 @@ open class NetworkService {
|
|||
/// - Parameter parameters: api parameters to pass Alamofire
|
||||
/// - Returns: Observable of tuple containing (HTTPURLResponse, Data)
|
||||
public func rxDataRequest(with parameters: ApiRequestParameters)
|
||||
-> Observable<(response: HTTPURLResponse, data: Data)> {
|
||||
-> Observable<SessionManager.DataResponse> {
|
||||
|
||||
return sessionManager.rx.responseData(requestParameters: parameters)
|
||||
.counterTracking(for: self)
|
||||
|
|
|
|||
|
|
@ -25,6 +25,12 @@ import Alamofire
|
|||
/// Session Manager stored in NetworkService
|
||||
open class SessionManager: Alamofire.SessionManager {
|
||||
|
||||
/// Response with HTTP URL Response and target object
|
||||
public typealias ModelResponse<T> = (response: HTTPURLResponse, model: T)
|
||||
|
||||
/// Response with HTTP URL Response and data
|
||||
public typealias DataResponse = (response: HTTPURLResponse, data: Data)
|
||||
|
||||
/// Acceptable status codes for validation
|
||||
public let acceptableStatusCodes: Set<Int>
|
||||
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ public extension Reactive where Base: SessionManager {
|
|||
/// - Returns: Observable with HTTP URL Response and target object
|
||||
func responseModel<T: Decodable>(requestParameters: ApiRequestParameters,
|
||||
decoder: JSONDecoder)
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> {
|
||||
-> Observable<SessionManager.ModelResponse<T>> {
|
||||
|
||||
return apiRequest(requestParameters: requestParameters)
|
||||
.flatMap {
|
||||
|
|
@ -131,7 +131,7 @@ public extension Reactive where Base: SessionManager {
|
|||
/// - Returns: Observable with HTTP URL Response and target object
|
||||
func responseObservableModel<T: ObservableMappable>(requestParameters: ApiRequestParameters,
|
||||
decoder: JSONDecoder)
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> {
|
||||
-> Observable<SessionManager.ModelResponse<T>> {
|
||||
|
||||
return apiRequest(requestParameters: requestParameters)
|
||||
.flatMap {
|
||||
|
|
@ -145,13 +145,13 @@ public extension Reactive where Base: SessionManager {
|
|||
/// - Parameter requestParameters: api parameters to pass Alamofire
|
||||
/// - Returns: Observable with HTTP URL Response and Data
|
||||
func responseData(requestParameters: ApiRequestParameters)
|
||||
-> Observable<(response: HTTPURLResponse, data: Data)> {
|
||||
-> Observable<SessionManager.DataResponse> {
|
||||
|
||||
return apiRequest(requestParameters: requestParameters)
|
||||
.flatMap {
|
||||
$0.rx.responseResult(queue: self.base.mappingQueue,
|
||||
responseSerializer: DataRequest.dataResponseSerializer())
|
||||
.map { ($0, $1 as Data) }
|
||||
.map { $0 as SessionManager.DataResponse }
|
||||
.catchAsRequestError(with: $0)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue