From dbc5bf9a17cc4057b58f4f8be9a27e0cbf0c29a9 Mon Sep 17 00:00:00 2001 From: Ivan Babkin Date: Fri, 22 Feb 2019 13:24:49 +0300 Subject: [PATCH] Refactoring --- Sources/Classes/Services/NetworkService.swift | 6 +++--- Sources/Classes/Services/SessionManager.swift | 6 ++++++ .../Extensions/Alamofire/SessionManager+Extensions.swift | 8 ++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Sources/Classes/Services/NetworkService.swift b/Sources/Classes/Services/NetworkService.swift index 5b8f5beb..08879f45 100644 --- a/Sources/Classes/Services/NetworkService.swift +++ b/Sources/Classes/Services/NetworkService.swift @@ -60,7 +60,7 @@ open class NetworkService { /// - Returns: Observable of tuple containing (HTTPURLResponse, ObservableMappable) public func rxObservableRequest(with parameters: ApiRequestParameters, decoder: JSONDecoder = JSONDecoder()) - -> Observable<(response: HTTPURLResponse, model: T)> { + -> Observable> { 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(with parameters: ApiRequestParameters, decoder: JSONDecoder = JSONDecoder()) - -> Observable<(response: HTTPURLResponse, model: T)> { + -> Observable> { 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 { return sessionManager.rx.responseData(requestParameters: parameters) .counterTracking(for: self) diff --git a/Sources/Classes/Services/SessionManager.swift b/Sources/Classes/Services/SessionManager.swift index 47ce6307..d4d7bee8 100644 --- a/Sources/Classes/Services/SessionManager.swift +++ b/Sources/Classes/Services/SessionManager.swift @@ -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 = (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 diff --git a/Sources/Extensions/Alamofire/SessionManager+Extensions.swift b/Sources/Extensions/Alamofire/SessionManager+Extensions.swift index 8cae1352..161230ba 100644 --- a/Sources/Extensions/Alamofire/SessionManager+Extensions.swift +++ b/Sources/Extensions/Alamofire/SessionManager+Extensions.swift @@ -115,7 +115,7 @@ public extension Reactive where Base: SessionManager { /// - Returns: Observable with HTTP URL Response and target object func responseModel(requestParameters: ApiRequestParameters, decoder: JSONDecoder) - -> Observable<(response: HTTPURLResponse, model: T)> { + -> Observable> { 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(requestParameters: ApiRequestParameters, decoder: JSONDecoder) - -> Observable<(response: HTTPURLResponse, model: T)> { + -> Observable> { 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 { 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) } }