def get_page_dependencies()

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