push model in action events for model specfic attributes

This commit is contained in:
Hedden, Kyle Matthew 2023-10-02 12:32:00 -04:00
parent e5402bb6eb
commit a5d237df8b
2 changed files with 11 additions and 8 deletions

View File

@ -97,14 +97,14 @@ public protocol MVMCoreJSONActionHandlerProtocol: MVMCoreActionHandlerProtocol {
do {
let handlerType = try ModelRegistry.getHandler(model) as! MVMCoreActionHandlerProtocol.Type
let handler = handlerType.init()
MVMCoreLoggingHandler.shared()?.logCoreEvent(.actionInvoked(name: model.actionType, pageType: pageType(from: delegateObject), uuid: uuid))
MVMCoreLoggingHandler.shared()?.logCoreEvent(.actionInvoked(name: model.actionType, pageType: pageType(from: delegateObject), uuid: uuid, model: model))
if let handler = handler as? MVMCoreJSONActionHandlerProtocol {
// Needed until we can remove legacy delegate functions.
try await handler.performAction(with: json, model: model, delegateObject: delegateObject, additionalData: additionalData)
} else {
try await handler.execute(with: model, delegateObject: delegateObject, additionalData: additionalData)
}
MVMCoreLoggingHandler.shared()?.logCoreEvent(.actionComplete(name: model.actionType, pageType: pageType(from: delegateObject), uuid: uuid))
MVMCoreLoggingHandler.shared()?.logCoreEvent(.actionComplete(name: model.actionType, pageType: pageType(from: delegateObject), uuid: uuid, model: model))
} catch ModelRegistry.Error.handlerNotMapped {
try Task.checkCancellation()
// Allows custom handling if there no handler for the action.
@ -114,7 +114,7 @@ public protocol MVMCoreJSONActionHandlerProtocol: MVMCoreActionHandlerProtocol {
throw ActionError.unknownAction(type: model.actionType)
}
} catch {
MVMCoreLoggingHandler.shared()?.logCoreEvent(.actionFailed(name: model.actionType, pageType: pageType(from: delegateObject), uuid: uuid, error: error))
MVMCoreLoggingHandler.shared()?.logCoreEvent(.actionFailed(name: model.actionType, pageType: pageType(from: delegateObject), uuid: uuid, model: model, error: error))
MVMCoreActionHandler.log(string: "Failed Action \(error)", additionalData: additionalData)
throw error
}

View File

@ -29,26 +29,29 @@ public enum MVMCoreEvent {
pageType: String
)
/// The webview bridge action handler was invoked and is in progress.
/// The core action handler was invoked and is in progress.
case actionInvoked(
name: String,
pageType: String,
uuid: String
uuid: String,
model: ActionModelProtocol
)
/// The action failed..
/// The core action handler fail to complete the action.
case actionFailed(
name: String,
pageType: String,
uuid: String,
model: ActionModelProtocol,
error: Error?
)
/// The action is completed.
/// The core action handler completed an action.
case actionComplete(
name: String,
pageType: String,
uuid: String
uuid: String,
model: ActionModelProtocol
)
// ----------------------------