From 3dc05bea61e79472204f4884c16a538cf43941fc Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Tue, 17 Oct 2023 16:26:38 -0400 Subject: [PATCH 1/2] Reset optional and required module mapping at the time of request. --- .../ActionHandling/ActionOpenPageHandler.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/MVMCore/MVMCore/ActionHandling/ActionOpenPageHandler.swift b/MVMCore/MVMCore/ActionHandling/ActionOpenPageHandler.swift index 989971a..2f79085 100644 --- a/MVMCore/MVMCore/ActionHandling/ActionOpenPageHandler.swift +++ b/MVMCore/MVMCore/ActionHandling/ActionOpenPageHandler.swift @@ -11,9 +11,19 @@ import Foundation open class ActionOpenPageHandler: MVMCoreJSONActionHandlerProtocol { required public init() {} + func requestParamaters(for model: ActionOpenPageModel) -> MVMCoreRequestParameters { + let requestParameters = model.requestParameters.copy() as! MVMCoreRequestParameters + if let pageType = requestParameters.pageType { + // Re-evaluate required & optional modules as action models might have been generated prior to recent additions to the mapping. + requestParameters.modules = MVMCoreViewControllerMappingObject.shared()?.modulesRequired(forPageType: pageType) as? [String] + requestParameters.optionalModules = MVMCoreViewControllerMappingObject.shared()?.modulesOptional(forPageType: pageType) as? [String] + } + return requestParameters + } + open func performAction(with JSON: [AnyHashable : Any], model: ActionModelProtocol, delegateObject: DelegateObject?, additionalData: [AnyHashable : Any]?) async throws { guard let model = model as? ActionOpenPageModel else { return } - let requestParameters: MVMCoreRequestParameters = model.requestParameters.copy() as! MVMCoreRequestParameters + let requestParameters = requestParamaters(for: model) do { if let closure = delegateObject?.actionDelegate?.handleOpenPage { // Legacy code will use the old handler function and break the task chain here. From 1e8f7f417eb6d298d1f300507da3391adfe12142 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Tue, 17 Oct 2023 16:26:57 -0400 Subject: [PATCH 2/2] HARD_CODED_RESPONSE_DELAY for simulations. --- MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m index d6e352b..f0cc338 100644 --- a/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m +++ b/MVMCore/MVMCore/LoadHandling/MVMCoreLoadRequestOperation.m @@ -299,6 +299,9 @@ if ([[MVMCoreObject sharedInstance].globalLoadDelegate respondsToSelector:@selector(getJSONForRequestParameters:)]) { NSDictionary *json = [[MVMCoreObject sharedInstance].globalLoadDelegate getJSONForRequestParameters:requestParameters]; if (json) { +#if HARD_CODED_RESPONSE_DELAY > 0 + [NSThread sleepForTimeInterval:HARD_CODED_RESPONSE_DELAY]; +#endif completionHandler(json); return; }