From c8403eb6390ec765fbad149c6822bf94f2322348 Mon Sep 17 00:00:00 2001 From: Ivan Smolin Date: Fri, 1 Dec 2017 15:28:44 +0300 Subject: [PATCH] add acceptable status codes to network service constructor --- Sources/Classes/Services/NetworkService.swift | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Sources/Classes/Services/NetworkService.swift b/Sources/Classes/Services/NetworkService.swift index ad89b7b8..7811c4e5 100644 --- a/Sources/Classes/Services/NetworkService.swift +++ b/Sources/Classes/Services/NetworkService.swift @@ -37,6 +37,8 @@ open class NetworkService { public let sessionManager: Alamofire.SessionManager + private let acceptableStatusCodes: [Int] + var requestCount: Driver { return requestCountVariable.asDriver() } @@ -44,8 +46,11 @@ open class NetworkService { /// Creates new instance of NetworkService with given Alamofire session manager /// /// - Parameter sessionManager: Alamofire.SessionManager to use for requests - public init(sessionManager: Alamofire.SessionManager) { + public init(sessionManager: Alamofire.SessionManager, + acceptableStatusCodes: [Int] = Alamofire.SessionManager.defaultAcceptableStatusCodes) { + self.sessionManager = sessionManager + self.acceptableStatusCodes = acceptableStatusCodes } /// Perform reactive request to get mapped ObservableMappable model and http response @@ -55,7 +60,8 @@ open class NetworkService { public func rxRequest(with parameters: ApiRequestParameters) -> Observable<(response: HTTPURLResponse, model: T)> where T.ModelType == T { - return sessionManager.rx.responseObservableModel(requestParameters: parameters) + return sessionManager.rx.responseObservableModel(requestParameters: parameters, + acceptableStatusCodes: acceptableStatusCodes) .counterTracking(for: self) } @@ -66,7 +72,8 @@ open class NetworkService { public func rxRequest(with parameters: ApiRequestParameters) -> Observable<(response: HTTPURLResponse, model: T)> { - return sessionManager.rx.responseModel(requestParameters: parameters) + return sessionManager.rx.responseModel(requestParameters: parameters, + acceptableStatusCodes: acceptableStatusCodes) .counterTracking(for: self) }