in src/dfcx_scrapi/tools/copy_util.py [0:0]
def get_page_dependencies(self, obj_list):
"""Pass in DFCX Page object(s) and retrieve all resource dependencies.
Args:
obj_list: a List of one or more DFCX Page Objects
Returns:
Dictionary containing all of the resource objects
"""
resources = defaultdict(list)
flow_id = "/".join(obj_list[0].name.split("/")[0:8])
# Loop through Pages and find all dependencies
for page in obj_list:
resources = self._get_entry_webhooks(page, resources)
resources = self._get_condition_route_webhooks(page, resources)
resources = self._get_intent_route_intents(page, resources)
resources = self._get_form_entity_types(page, resources)
resources = self._get_route_groups_and_intents(
page, flow_id, resources
)
# Start Pages of Flows are special Page-like objects and have different
# structure, so we need to extract the resources from them differently.
resources = self._get_flow_intent_route_intents(
flow_id, obj_list, resources
)
# Final check to look for additional Entity dependencies
if "intents" in resources:
resources = self._get_intent_entity_dependencies(resources)
for key in resources:
resources[key] = set(resources[key])
return resources