Merge pull request #186 from TouchInstinct/feature/data_request
Add request method that returns data
This commit is contained in:
commit
7cb1ea350b
|
|
@ -1,5 +1,9 @@
|
|||
# Changelog
|
||||
|
||||
### 0.9.8
|
||||
- **Add**: `rxDataRequest` method to `NetworkService` class, that performs reactive request to get data and http response.
|
||||
- **Add**: `responseData` method to `SessionManager` extension, that executes request and returns data.
|
||||
|
||||
### 0.9.7
|
||||
- **Add**: Carthage support.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Pod::Spec.new do |s|
|
||||
s.name = "LeadKit"
|
||||
s.version = "0.9.7"
|
||||
s.version = "0.9.8"
|
||||
s.summary = "iOS framework with a bunch of tools for rapid development"
|
||||
s.homepage = "https://github.com/TouchInstinct/LeadKit"
|
||||
s.license = "Apache License, Version 2.0"
|
||||
|
|
|
|||
|
|
@ -79,6 +79,17 @@ open class NetworkService {
|
|||
decoder: decoder)
|
||||
.counterTracking(for: self)
|
||||
}
|
||||
|
||||
/// Perform reactive request to get data and http response
|
||||
///
|
||||
/// - 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)> {
|
||||
|
||||
return sessionManager.rx.responseData(requestParameters: parameters)
|
||||
.counterTracking(for: self)
|
||||
}
|
||||
}
|
||||
|
||||
private extension NetworkService {
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@ public extension Reactive where Base: SessionManager {
|
|||
|
||||
return requestObservable
|
||||
.map { $0.validate(statusCode: self.base.acceptableStatusCodes) }
|
||||
.catchAsRequestError()
|
||||
}
|
||||
|
||||
/// Method that executes request and serializes response into target object
|
||||
|
|
@ -121,7 +122,6 @@ public extension Reactive where Base: SessionManager {
|
|||
$0.rx.apiResponse(mappingQueue: self.base.mappingQueue, decoder: decoder)
|
||||
.catchAsRequestError(with: $0)
|
||||
}
|
||||
.catchAsRequestError()
|
||||
}
|
||||
|
||||
/// Method that executes request and serializes response into target object
|
||||
|
|
@ -138,7 +138,22 @@ public extension Reactive where Base: SessionManager {
|
|||
$0.rx.observableApiResponse(mappingQueue: self.base.mappingQueue, decoder: decoder)
|
||||
.catchAsRequestError(with: $0)
|
||||
}
|
||||
.catchAsRequestError()
|
||||
}
|
||||
|
||||
/// Method that executes request and returns data
|
||||
///
|
||||
/// - Parameter requestParameters: api parameters to pass Alamofire
|
||||
/// - Returns: Observable with HTTP URL Response and Data
|
||||
func responseData(requestParameters: ApiRequestParameters)
|
||||
-> Observable<(response: HTTPURLResponse, data: Data)> {
|
||||
|
||||
return apiRequest(requestParameters: requestParameters)
|
||||
.flatMap {
|
||||
$0.rx.responseResult(queue: self.base.mappingQueue,
|
||||
responseSerializer: DataRequest.dataResponseSerializer())
|
||||
.map { ($0, $1 as Data) }
|
||||
.catchAsRequestError(with: $0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue