async function fetchDependsData()

in web/web/src/app/metalakes/metalake/MetalakeView.js [74:151]


    async function fetchDependsData() {
      if ([...searchParams.keys()].length) {
        const { metalake, catalog, type, schema, table, fileset, topic, model, version } = routeParams

        if (paramsSize === 1 && metalake) {
          dispatch(fetchCatalogs({ init: true, page: 'metalakes', metalake }))
          dispatch(getMetalakeDetails({ metalake }))
        }

        if (paramsSize === 3 && catalog) {
          if (!store.catalogs.length) {
            await dispatch(fetchCatalogs({ metalake }))
          }
          dispatch(fetchSchemas({ init: true, page: 'catalogs', metalake, catalog, type }))
          dispatch(getCatalogDetails({ metalake, catalog, type }))
        }

        if (paramsSize === 4 && catalog && type && schema) {
          if (!store.catalogs.length) {
            await dispatch(fetchCatalogs({ metalake }))
            await dispatch(fetchSchemas({ metalake, catalog, type }))
          }
          switch (type) {
            case 'relational':
              dispatch(fetchTables({ init: true, page: 'schemas', metalake, catalog, schema }))
              break
            case 'fileset':
              dispatch(fetchFilesets({ init: true, page: 'schemas', metalake, catalog, schema }))
              break
            case 'messaging':
              dispatch(fetchTopics({ init: true, page: 'schemas', metalake, catalog, schema }))
              break
            case 'model':
              dispatch(fetchModels({ init: true, page: 'schemas', metalake, catalog, schema }))
              break
            default:
              break
          }
          dispatch(getSchemaDetails({ metalake, catalog, schema }))
        }

        if (paramsSize === 5 && catalog && type && schema && (table || fileset || topic || model)) {
          if (!store.catalogs.length) {
            await dispatch(fetchCatalogs({ metalake }))
            await dispatch(fetchSchemas({ metalake, catalog, type }))
          }
          switch (type) {
            case 'relational':
              await dispatch(fetchTables({ init: true, page: 'schemas', metalake, catalog, schema }))
              await dispatch(getTableDetails({ init: true, metalake, catalog, schema, table }))
              break
            case 'fileset':
              await dispatch(fetchFilesets({ init: true, page: 'schemas', metalake, catalog, schema }))
              await dispatch(getFilesetDetails({ init: true, metalake, catalog, schema, fileset }))
              break
            case 'messaging':
              await dispatch(fetchTopics({ init: true, page: 'schemas', metalake, catalog, schema }))
              await dispatch(getTopicDetails({ init: true, metalake, catalog, schema, topic }))
              break
            case 'model':
              await dispatch(fetchModels({ init: true, page: 'schemas', metalake, catalog, schema }))
              await dispatch(fetchModelVersions({ init: true, metalake, catalog, schema, model }))
              await dispatch(getModelDetails({ init: true, metalake, catalog, schema, model }))
              break
            default:
              break
          }
        }
        if (paramsSize === 6 && version) {
          if (!store.catalogs.length) {
            await dispatch(fetchCatalogs({ metalake }))
            await dispatch(fetchSchemas({ metalake, catalog, type }))
            await dispatch(fetchModels({ init: true, page: 'schemas', metalake, catalog, schema }))
          }
          dispatch(getVersionDetails({ init: true, metalake, catalog, schema, model, version }))
        }
      }
    }