32 lines
793 B
Python
32 lines
793 B
Python
import logging
|
|
|
|
from core.apirequest import executeRequest
|
|
from core.runtime.runtimecontract import buildRuntimeAttr, buildPreRuntimeAttr
|
|
|
|
def buildAction (action, outputs):
|
|
action_log = True
|
|
|
|
resolved, match, filter = buildPreRuntimeAttr(action, outputs)
|
|
|
|
if hasattr(action, "allowaction"):
|
|
if not action.allowaction:
|
|
return None
|
|
|
|
if match:
|
|
if filter.get("execute", False):
|
|
response = executeRequest(filter["execute"], outputs, resolved)
|
|
|
|
return None
|
|
|
|
response = executeRequest(action, outputs, resolved)
|
|
|
|
if response is None:
|
|
return outputs, None
|
|
|
|
response = buildRuntimeAttr(action, outputs, resolved, response)
|
|
|
|
if action_log:
|
|
logging.info(f"{action.name} completed")
|
|
|
|
return response
|