correct ObservableMappable
This commit is contained in:
parent
dcc095a233
commit
475e801393
|
|
@ -59,9 +59,9 @@ open class NetworkService {
|
|||
/// - Parameter parameters: api parameters to pass Alamofire
|
||||
/// - Parameter decoder: json decoder to decode response data
|
||||
/// - Returns: Observable of tuple containing (HTTPURLResponse, ObservableMappable)
|
||||
public func rxRequest<T: ObservableMappable>(with parameters: ApiRequestParameters,
|
||||
decoder: JSONDecoder = JSONDecoder())
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> where T.ModelType == T {
|
||||
public func rxObservableRequest<T: ObservableMappable>(with parameters: ApiRequestParameters,
|
||||
decoder: JSONDecoder = JSONDecoder())
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> {
|
||||
|
||||
return sessionManager.rx.responseObservableModel(requestParameters: parameters,
|
||||
decoder: decoder,
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public extension Reactive where Base: Alamofire.SessionManager {
|
|||
decoder: JSONDecoder,
|
||||
mappingQueue: DispatchQueue = .global(),
|
||||
acceptableStatusCodes: Set<Int> = Base.defaultAcceptableStatusCodes)
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> where T.ModelType == T {
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> {
|
||||
|
||||
return apiRequest(requestParameters: requestParameters, acceptableStatusCodes: acceptableStatusCodes)
|
||||
.flatMap { $0.rx.observableApiResponse(mappingQueue: mappingQueue, decoder: decoder) }
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public extension Reactive where Base: DataRequest {
|
|||
/// - Parameter mappingQueue: The dispatch queue to use for mapping
|
||||
/// - Returns: Observable with HTTP URL Response and target object
|
||||
func observableApiResponse<T: ObservableMappable>(mappingQueue: DispatchQueue = .global(), decoder: JSONDecoder)
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> where T.ModelType == T {
|
||||
-> Observable<(response: HTTPURLResponse, model: T)> {
|
||||
|
||||
return responseData()
|
||||
.observeOn(SerialDispatchQueueScheduler(queue: mappingQueue, internalSerialQueueName: mappingQueue.label))
|
||||
|
|
|
|||
|
|
@ -23,10 +23,10 @@
|
|||
import RxSwift
|
||||
|
||||
/// Protocol for concurrent model mapping
|
||||
public protocol ObservableMappable {
|
||||
public protocol ObservableMappable where Self: Decodable {
|
||||
|
||||
associatedtype ModelType: Decodable
|
||||
//associatedtype ModelType: Decodable
|
||||
|
||||
static func create(from jsonObject: Any, with decoder: JSONDecoder) -> Observable<ModelType>
|
||||
static func create(from jsonObject: Any, with decoder: JSONDecoder) -> Observable<Self>
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ final class NetworkServiceTests: XCTestCase {
|
|||
let apiRequest = ApiRequestParameters(url: networkService.configuration.baseUrl + "/albums/1")
|
||||
|
||||
// when
|
||||
networkService.rxRequest(with: apiRequest)
|
||||
networkService.rxObservableRequest(with: apiRequest)
|
||||
.subscribe(onNext: { (_, model: Album) in
|
||||
receivedModel = model
|
||||
requestCompletedExpectation.fulfill()
|
||||
|
|
@ -139,7 +139,7 @@ final class NetworkServiceTests: XCTestCase {
|
|||
let apiRequest = ApiRequestParameters(url: networkService.configuration.baseUrl + "/albums")
|
||||
|
||||
// when
|
||||
networkService.rxRequest(with: apiRequest)
|
||||
networkService.rxObservableRequest(with: apiRequest)
|
||||
.subscribe(onNext: { (_, model: AlbumContainer) in
|
||||
receivedModel = model
|
||||
requestCompletedExpectation.fulfill()
|
||||
|
|
|
|||
Loading…
Reference in New Issue