map
This commit is contained in:
parent
075ad53953
commit
ecac8ede70
@ -15,20 +15,20 @@ public protocol ClientParameterProtocol {
|
|||||||
|
|
||||||
var clientParameterModel: ClientParameterModelProtocol { get set }
|
var clientParameterModel: ClientParameterModelProtocol { get set }
|
||||||
|
|
||||||
func fetchClientParameters(requestParameters: [String: Any], timingOutIn timeout: Double, completionHandler:@escaping (AnyHashable?) -> ())
|
func fetchClientParameters(requestParameters: [String: Any], timingOutIn timeout: Double, completionHandler:@escaping ([String: AnyHashable]?) -> ())
|
||||||
|
|
||||||
/// Default parameter for timeout scenarios. It will use the protocol extension method bydefault. Can override to send custom values.
|
/// Default parameter for timeout scenarios. It will use the protocol extension method bydefault. Can override to send custom values.
|
||||||
func valueOnTimeout() -> AnyHashable
|
func valueOnTimeout() -> [String: AnyHashable]
|
||||||
}
|
}
|
||||||
|
|
||||||
public extension ClientParameterProtocol {
|
public extension ClientParameterProtocol {
|
||||||
|
|
||||||
func valueOnTimeout() -> AnyHashable {
|
func valueOnTimeout() -> [String: AnyHashable] {
|
||||||
return [Self.name: "failed_to_collect"]
|
return [Self.name: "failed_to_collect"]
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The handler should call this method to pass the parameter back to the caller.
|
/// The handler should call this method to pass the parameter back to the caller.
|
||||||
func returnParameters(_ isFlatMap: Bool, _ parameter: [String: AnyHashable]?, completionHandler: @escaping (AnyHashable?) -> ()) {
|
func returnParameters(_ isFlatMap: Bool, _ parameter: [String: AnyHashable]?, completionHandler: @escaping ([String: AnyHashable]?) -> ()) {
|
||||||
guard let parameter = parameter else {
|
guard let parameter = parameter else {
|
||||||
return completionHandler(nil)
|
return completionHandler(nil)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -78,7 +78,8 @@ import Foundation
|
|||||||
for (index, item) in returnedList.enumerated() {
|
for (index, item) in returnedList.enumerated() {
|
||||||
if let item = item {
|
if let item = item {
|
||||||
parametersList = parametersList.merging(item) { (_, new) in new }
|
parametersList = parametersList.merging(item) { (_, new) in new }
|
||||||
} else if let defaultValue = parameterHandlerList[index].valueOnTimeout() as? [String: AnyHashable] {
|
} else {
|
||||||
|
let defaultValue = parameterHandlerList[index].valueOnTimeout()
|
||||||
parametersList = parametersList.merging(defaultValue) { (_, new) in new }
|
parametersList = parametersList.merging(defaultValue) { (_, new) in new }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -109,9 +110,7 @@ import Foundation
|
|||||||
timingOutIn: timeout) { (receivedParameter) in
|
timingOutIn: timeout) { (receivedParameter) in
|
||||||
// Queue the results for merge.
|
// Queue the results for merge.
|
||||||
parametersWorkQueue.async {
|
parametersWorkQueue.async {
|
||||||
if let receivedParameter = receivedParameter as? [String: AnyHashable] {
|
returnedList[index] = receivedParameter
|
||||||
returnedList[index] = receivedParameter
|
|
||||||
}
|
|
||||||
group.leave() // Leaving is only done after setup (barriered).
|
group.leave() // Leaving is only done after setup (barriered).
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "MVMCoreRequestParameters.h"
|
#import "MVMCoreRequestParameters.h"
|
||||||
|
|
||||||
#define ENABLE_HARD_CODED_RESPONSE 1 && DEBUG
|
#define ENABLE_HARD_CODED_RESPONSE 0 && DEBUG
|
||||||
|
|
||||||
#if ENABLE_HARD_CODED_RESPONSE
|
#if ENABLE_HARD_CODED_RESPONSE
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user