diff --git a/CHANGELOG.md b/CHANGELOG.md index 9daf0d62..a4f7afdb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - **Add**: `handleMappingError` method to `ObservableType`, `Single`, `Completable` extensions, that handles a mapping error and serialize response to a model. - **Add**: `validate` method to `DataRequest` observable extension, that validates status codes and catch network errors. - **Add**: `dataApiResponse` method to `DataRequest` reactive extension, that serializes response into data. +- **Update**: `validStatusCodes` parameter in network methods renamed to `additionalValidStatusCodes`. ### 0.9.11 - **[Breaking change]**: Renamed `NumberFormat`'s `allOptions` to `allCases` diff --git a/Sources/Classes/Services/NetworkService.swift b/Sources/Classes/Services/NetworkService.swift index 57e0e265..10cb8f8e 100644 --- a/Sources/Classes/Services/NetworkService.swift +++ b/Sources/Classes/Services/NetworkService.swift @@ -57,16 +57,16 @@ open class NetworkService { /// /// - Parameters: /// - parameters: api parameters to pass to Alamofire - /// - validStatusCodes: set of additional valid status codes + /// - additionalValidStatusCodes: set of additional valid status codes /// - decoder: json decoder to decode response data /// - Returns: Observable of tuple containing (HTTPURLResponse, ObservableMappable) public func rxObservableRequest(with parameters: ApiRequestParameters, - validStatusCodes: Set = [], + additionalValidStatusCodes: Set = [], decoder: JSONDecoder = JSONDecoder()) -> Observable> { return sessionManager.rx.responseObservableModel(requestParameters: parameters, - validStatusCodes: validStatusCodes, + additionalValidStatusCodes: additionalValidStatusCodes, decoder: decoder) .counterTracking(for: self) } @@ -75,16 +75,16 @@ open class NetworkService { /// /// - Parameters: /// - parameters: api parameters to pass to Alamofire - /// - validStatusCodes: set of additional valid status codes + /// - additionalValidStatusCodes: set of additional valid status codes /// - decoder: json decoder to decode response data /// - Returns: Observable of tuple containing (HTTPURLResponse, ImmutableMappable) public func rxRequest(with parameters: ApiRequestParameters, - validStatusCodes: Set = [], + additionalValidStatusCodes: Set = [], decoder: JSONDecoder = JSONDecoder()) -> Observable> { return sessionManager.rx.responseModel(requestParameters: parameters, - validStatusCodes: validStatusCodes, + additionalValidStatusCodes: additionalValidStatusCodes, decoder: decoder) .counterTracking(for: self) } @@ -93,12 +93,13 @@ open class NetworkService { /// /// - Parameters: /// - parameters: api parameters to pass to Alamofire - /// - validStatusCodes: set of additional valid status codes + /// - additionalValidStatusCodes: set of additional valid status codes /// - Returns: Observable of tuple containing (HTTPURLResponse, Data) - public func rxDataRequest(with parameters: ApiRequestParameters, validStatusCodes: Set = []) + public func rxDataRequest(with parameters: ApiRequestParameters, additionalValidStatusCodes: Set = []) -> Observable { - return sessionManager.rx.responseData(requestParameters: parameters, validStatusCodes: validStatusCodes) + return sessionManager.rx.responseData(requestParameters: parameters, + additionalValidStatusCodes: additionalValidStatusCodes) .counterTracking(for: self) } @@ -106,16 +107,16 @@ open class NetworkService { /// /// - Parameters: /// - parameters: api upload parameters to pass Alamofire - /// - validStatusCodes: et of additional valid status codes + /// - additionalValidStatusCodes: set of additional valid status codes /// - decoder: json decoder to decode response data /// - Returns: Observable of model response public func rxUploadRequest(with parameters: ApiUploadRequestParameters, - validStatusCodes: Set = [], + additionalValidStatusCodes: Set = [], decoder: JSONDecoder = JSONDecoder()) -> Observable> { return sessionManager.rx.uploadResponseModel(requestParameters: parameters, - validStatusCodes: validStatusCodes, + additionalValidStatusCodes: additionalValidStatusCodes, decoder: decoder) .counterTracking(for: self) } diff --git a/Sources/Extensions/Alamofire/SessionManager+Extensions.swift b/Sources/Extensions/Alamofire/SessionManager+Extensions.swift index 67ae710f..a8afc976 100644 --- a/Sources/Extensions/Alamofire/SessionManager+Extensions.swift +++ b/Sources/Extensions/Alamofire/SessionManager+Extensions.swift @@ -70,9 +70,9 @@ public extension Reactive where Base: SessionManager { /// /// - Parameters: /// - requestParameters: api parameters to pass Alamofire - /// - validStatusCodes: set of additional valid status codes + /// - additionalValidStatusCodes: set of additional valid status codes /// - Returns: Observable with request - func apiRequest(requestParameters: ApiRequestParameters, validStatusCodes: Set) + func apiRequest(requestParameters: ApiRequestParameters, additionalValidStatusCodes: Set) -> Observable { let requestObservable: Observable @@ -106,22 +106,22 @@ public extension Reactive where Base: SessionManager { } return requestObservable - .validate(statusCodes: self.base.acceptableStatusCodes.union(validStatusCodes)) + .validate(statusCodes: self.base.acceptableStatusCodes.union(additionalValidStatusCodes)) } /// Method that executes request and serializes response into target object /// /// - Parameters: /// - requestParameters: api parameters to pass Alamofire - /// - validStatusCodes: set of additional valid status codes + /// - additionalValidStatusCodes: set of additional valid status codes /// - decoder: json decoder to decode response data /// - Returns: Observable with HTTP URL Response and target object func responseModel(requestParameters: ApiRequestParameters, - validStatusCodes: Set, + additionalValidStatusCodes: Set, decoder: JSONDecoder) -> Observable> { - return apiRequest(requestParameters: requestParameters, validStatusCodes: validStatusCodes) + return apiRequest(requestParameters: requestParameters, additionalValidStatusCodes: additionalValidStatusCodes) .flatMap { $0.rx.apiResponse(mappingQueue: self.base.mappingQueue, decoder: decoder) } @@ -131,15 +131,15 @@ public extension Reactive where Base: SessionManager { /// /// - Parameters: /// - requestParameters: api parameters to pass Alamofire - /// - validStatusCodes: set of additional valid status codes + /// - additionalValidStatusCodes: set of additional valid status codes /// - decoder: json decoder to decode response data /// - Returns: Observable with HTTP URL Response and target object func responseObservableModel(requestParameters: ApiRequestParameters, - validStatusCodes: Set, + additionalValidStatusCodes: Set, decoder: JSONDecoder) -> Observable> { - return apiRequest(requestParameters: requestParameters, validStatusCodes: validStatusCodes) + return apiRequest(requestParameters: requestParameters, additionalValidStatusCodes: additionalValidStatusCodes) .flatMap { $0.rx.observableApiResponse(mappingQueue: self.base.mappingQueue, decoder: decoder) } @@ -149,12 +149,12 @@ public extension Reactive where Base: SessionManager { /// /// - Parameters: /// - requestParameters: api parameters to pass Alamofire - /// - validStatusCodes: set of additional valid status codes + /// - additionalValidStatusCodes: set of additional valid status codes /// - Returns: Observable with HTTP URL Response and Data - func responseData(requestParameters: ApiRequestParameters, validStatusCodes: Set) + func responseData(requestParameters: ApiRequestParameters, additionalValidStatusCodes: Set) -> Observable { - return apiRequest(requestParameters: requestParameters, validStatusCodes: validStatusCodes) + return apiRequest(requestParameters: requestParameters, additionalValidStatusCodes: additionalValidStatusCodes) .flatMap { $0.rx.dataApiResponse(mappingQueue: self.base.mappingQueue) } @@ -164,11 +164,11 @@ public extension Reactive where Base: SessionManager { /// /// - Parameters: /// - requestParameters: api upload parameters to pass Alamofire - /// - validStatusCodes: set of additional valid status codes + /// - additionalValidStatusCodes: set of additional valid status codes /// - decoder: json decoder to decode response data /// - Returns: Observable with HTTP URL Response and target object func uploadResponseModel(requestParameters: ApiUploadRequestParameters, - validStatusCodes: Set, + additionalValidStatusCodes: Set, decoder: JSONDecoder) -> Observable> { @@ -179,7 +179,7 @@ public extension Reactive where Base: SessionManager { return self.upload(data, urlRequest: urlRequest) .map { $0 as DataRequest } - .validate(statusCodes: self.base.acceptableStatusCodes.union(validStatusCodes)) + .validate(statusCodes: self.base.acceptableStatusCodes.union(additionalValidStatusCodes)) .flatMap { $0.rx.apiResponse(mappingQueue: self.base.mappingQueue, decoder: decoder) }