code review
This commit is contained in:
parent
34c4bd18ee
commit
f2855f317b
@ -10,7 +10,7 @@ import Foundation
|
||||
|
||||
public extension MVMCoreActionHandler {
|
||||
|
||||
/// Iterates threw the clientParameters list. Gets values from the individual handlers and attaches the parameters to extraParameters.
|
||||
/// Iterates through the clientParameters list. Gets values from the individual handlers and attaches the parameters to extraParameters.
|
||||
@objc func setClientParameter(with actionMap: [String: Any]?, completionHandler: @escaping ([String : Any]?) -> ()) {
|
||||
|
||||
guard let actionMapWithClientParameters = actionMap, let clientParameters = actionMapWithClientParameters.optionalDictionaryForKey("clientParameters") else {
|
||||
@ -31,7 +31,7 @@ public extension MVMCoreActionHandler {
|
||||
}
|
||||
|
||||
do {
|
||||
try ClientParameterRegistry.injectParameters(with: clientParameters) { (clientParams) in
|
||||
try ClientParameterRegistry.getParameters(with: clientParameters) { (clientParams) in
|
||||
guard let clientParams = clientParams else {
|
||||
stopLoadingOverlay()
|
||||
completionHandler(actionMapWithClientParameters)
|
||||
|
||||
@ -25,7 +25,7 @@ public class ClientParameterModel: Codable {
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
try container.encode(timeout, forKey: .timeout)
|
||||
try container.encodeIfPresent(timeout, forKey: .timeout)
|
||||
try container.encodeModels(list, forKey: .list)
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,7 +33,21 @@ import Foundation
|
||||
return try JSONDecoder().decode(ClientParameterModel.self, from: data)
|
||||
}
|
||||
|
||||
static func injectParameters(with clientParameters: [String: Any], completionHandler:@escaping ([String: Any]?) -> ()) throws {
|
||||
/// Sample clientParameters
|
||||
///{
|
||||
/// "timeout": 30,
|
||||
/// "list": [
|
||||
/// {
|
||||
/// "type": "currentLocation",
|
||||
/// "inputParameters": {
|
||||
/// "accuracy": 10,
|
||||
/// "timeThreshold": 600
|
||||
/// }
|
||||
/// }
|
||||
/// ]
|
||||
///}
|
||||
/// completionHandler can return flat dictinary or a map. It depends on the paramters handler
|
||||
static func getParameters(with clientParameters: [String: Any], completionHandler:@escaping ([String: Any]?) -> ()) throws {
|
||||
|
||||
guard let clientParameterRegistry = MVMCoreObject.sharedInstance()?.clientParameterRegistry,
|
||||
let clientParameterModel = try ClientParameterRegistry.getClientParameterModel(clientParameters) else {
|
||||
@ -73,7 +87,7 @@ import Foundation
|
||||
parametersList[parameterModel.type] = ["error": defaultErrorString]
|
||||
group.enter()
|
||||
// Dispatch asynchronous injection.
|
||||
clientParameterRegistry.injectParameter(parameterModel, before: timeout) { (receivedParameter) in
|
||||
clientParameterRegistry.getParameterFromHandler(parameterModel, before: timeout) { (receivedParameter) in
|
||||
// Queue the results for merge.
|
||||
parametersWorkQueue.async {
|
||||
if let receivedParameter = receivedParameter {
|
||||
@ -89,7 +103,7 @@ import Foundation
|
||||
}
|
||||
}
|
||||
|
||||
func injectParameter( _ parameterModel: ClientParameterModelProtocol, before timeout: Double, completionHandler:@escaping (AnyHashable?) -> ()) {
|
||||
func getParameterFromHandler( _ parameterModel: ClientParameterModelProtocol, before timeout: Double, completionHandler:@escaping (AnyHashable?) -> ()) {
|
||||
guard let parameterHandler = createParametersHandler(parameterModel.type) else {
|
||||
return completionHandler(nil)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user