mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-11-03 20:19:31 +00:00 
			
		
		
		
	move common code to classbase (#23700)
This commit is contained in:
		
							parent
							
								
									b7545e6305
								
							
						
					
					
						commit
						45c2ad9d4a
					
				@ -23,50 +23,11 @@ import {
 | 
				
			|||||||
  useState,
 | 
					  useState,
 | 
				
			||||||
} from 'react';
 | 
					} from 'react';
 | 
				
			||||||
import { useTranslation } from 'react-i18next';
 | 
					import { useTranslation } from 'react-i18next';
 | 
				
			||||||
import { EntityType, TabSpecificField } from '../../../enums/entity.enum';
 | 
					import { TabSpecificField } from '../../../enums/entity.enum';
 | 
				
			||||||
import { Table } from '../../../generated/entity/data/table';
 | 
					import { Table } from '../../../generated/entity/data/table';
 | 
				
			||||||
import { Include } from '../../../generated/type/include';
 | 
					 | 
				
			||||||
import { useApplicationStore } from '../../../hooks/useApplicationStore';
 | 
					import { useApplicationStore } from '../../../hooks/useApplicationStore';
 | 
				
			||||||
import { getAlertsFromName } from '../../../rest/alertsAPI';
 | 
					import entityUtilClassBase from '../../../utils/EntityUtilClassBase';
 | 
				
			||||||
import { getApiCollectionByFQN } from '../../../rest/apiCollectionsAPI';
 | 
					 | 
				
			||||||
import { getApiEndPointByFQN } from '../../../rest/apiEndpointsAPI';
 | 
					 | 
				
			||||||
import { getApplicationByName } from '../../../rest/applicationAPI';
 | 
					 | 
				
			||||||
import { getMarketPlaceApplicationByFqn } from '../../../rest/applicationMarketPlaceAPI';
 | 
					 | 
				
			||||||
import { getChartByFqn } from '../../../rest/chartsAPI';
 | 
					 | 
				
			||||||
import { getContract } from '../../../rest/contractAPI';
 | 
					 | 
				
			||||||
import { getDashboardByFqn } from '../../../rest/dashboardAPI';
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  getDatabaseDetailsByFQN,
 | 
					 | 
				
			||||||
  getDatabaseSchemaDetailsByFQN,
 | 
					 | 
				
			||||||
} from '../../../rest/databaseAPI';
 | 
					 | 
				
			||||||
import { getDataModelByFqn } from '../../../rest/dataModelsAPI';
 | 
					 | 
				
			||||||
import { getDataProductByName } from '../../../rest/dataProductAPI';
 | 
					 | 
				
			||||||
import { getDomainByName } from '../../../rest/domainAPI';
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  getGlossariesByName,
 | 
					 | 
				
			||||||
  getGlossaryTermByFQN,
 | 
					 | 
				
			||||||
} from '../../../rest/glossaryAPI';
 | 
					 | 
				
			||||||
import { getIngestionPipelineByFqn } from '../../../rest/ingestionPipelineAPI';
 | 
					 | 
				
			||||||
import { getKPIByName } from '../../../rest/KpiAPI';
 | 
					 | 
				
			||||||
import { getTypeByFQN } from '../../../rest/metadataTypeAPI';
 | 
					 | 
				
			||||||
import { getMetricByFqn } from '../../../rest/metricsAPI';
 | 
					 | 
				
			||||||
import { getMlModelByFQN } from '../../../rest/mlModelAPI';
 | 
					 | 
				
			||||||
import { getPersonaByName } from '../../../rest/PersonaAPI';
 | 
					 | 
				
			||||||
import { getPipelineByFqn } from '../../../rest/pipelineAPI';
 | 
					 | 
				
			||||||
import { getQueryByFqn } from '../../../rest/queryAPI';
 | 
					 | 
				
			||||||
import { getPolicyByName, getRoleByName } from '../../../rest/rolesAPIV1';
 | 
					 | 
				
			||||||
import { getSearchIndexDetailsByFQN } from '../../../rest/SearchIndexAPI';
 | 
					 | 
				
			||||||
import { getServiceByFQN } from '../../../rest/serviceAPI';
 | 
					 | 
				
			||||||
import { getContainerByFQN } from '../../../rest/storageAPI';
 | 
					 | 
				
			||||||
import { getStoredProceduresByFqn } from '../../../rest/storedProceduresAPI';
 | 
					 | 
				
			||||||
import { getTableDetailsByFQN } from '../../../rest/tableAPI';
 | 
					 | 
				
			||||||
import { getClassificationByName, getTagByFqn } from '../../../rest/tagAPI';
 | 
					 | 
				
			||||||
import { getTeamByName } from '../../../rest/teamsAPI';
 | 
					 | 
				
			||||||
import { getTestCaseByFqn, getTestSuiteByName } from '../../../rest/testAPI';
 | 
					 | 
				
			||||||
import { getTopicByFqn } from '../../../rest/topicsAPI';
 | 
					 | 
				
			||||||
import { getBotByName, getUserByName } from '../../../rest/userAPI';
 | 
					 | 
				
			||||||
import { getEntityName } from '../../../utils/EntityUtils';
 | 
					import { getEntityName } from '../../../utils/EntityUtils';
 | 
				
			||||||
import { EntityUnion } from '../../Explore/ExplorePage.interface';
 | 
					 | 
				
			||||||
import ExploreSearchCard from '../../ExploreV1/ExploreSearchCard/ExploreSearchCard';
 | 
					import ExploreSearchCard from '../../ExploreV1/ExploreSearchCard/ExploreSearchCard';
 | 
				
			||||||
import { SearchedDataProps } from '../../SearchedData/SearchedData.interface';
 | 
					import { SearchedDataProps } from '../../SearchedData/SearchedData.interface';
 | 
				
			||||||
import Loader from '../Loader/Loader';
 | 
					import Loader from '../Loader/Loader';
 | 
				
			||||||
@ -110,230 +71,12 @@ export const PopoverContent: React.FC<{
 | 
				
			|||||||
  const getData = useCallback(async () => {
 | 
					  const getData = useCallback(async () => {
 | 
				
			||||||
    const fields = `${TabSpecificField.TAGS},${TabSpecificField.OWNERS}`;
 | 
					    const fields = `${TabSpecificField.TAGS},${TabSpecificField.OWNERS}`;
 | 
				
			||||||
    setLoading(true);
 | 
					    setLoading(true);
 | 
				
			||||||
    let promise: Promise<EntityUnion> | null = null;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    switch (entityType) {
 | 
					    const promise = entityUtilClassBase.getEntityByFqn(
 | 
				
			||||||
      case EntityType.TABLE:
 | 
					      entityType,
 | 
				
			||||||
        promise = getTableDetailsByFQN(entityFQN, { fields });
 | 
					      entityFQN,
 | 
				
			||||||
 | 
					      fields
 | 
				
			||||||
        break;
 | 
					    );
 | 
				
			||||||
      case EntityType.TEST_CASE:
 | 
					 | 
				
			||||||
        promise = getTestCaseByFqn(entityFQN, {
 | 
					 | 
				
			||||||
          fields: [TabSpecificField.OWNERS],
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.TOPIC:
 | 
					 | 
				
			||||||
        promise = getTopicByFqn(entityFQN, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.DASHBOARD:
 | 
					 | 
				
			||||||
        promise = getDashboardByFqn(entityFQN, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.CHART:
 | 
					 | 
				
			||||||
        promise = getChartByFqn(entityFQN, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.PIPELINE:
 | 
					 | 
				
			||||||
        promise = getPipelineByFqn(entityFQN, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.MLMODEL:
 | 
					 | 
				
			||||||
        promise = getMlModelByFQN(entityFQN, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.DATABASE:
 | 
					 | 
				
			||||||
        promise = getDatabaseDetailsByFQN(entityFQN, {
 | 
					 | 
				
			||||||
          fields: TabSpecificField.OWNERS,
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.DATABASE_SCHEMA:
 | 
					 | 
				
			||||||
        promise = getDatabaseSchemaDetailsByFQN(entityFQN, {
 | 
					 | 
				
			||||||
          fields: TabSpecificField.OWNERS,
 | 
					 | 
				
			||||||
          include: Include.All,
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.GLOSSARY_TERM:
 | 
					 | 
				
			||||||
        promise = getGlossaryTermByFQN(entityFQN, {
 | 
					 | 
				
			||||||
          fields: TabSpecificField.OWNERS,
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.GLOSSARY:
 | 
					 | 
				
			||||||
        promise = getGlossariesByName(entityFQN, {
 | 
					 | 
				
			||||||
          fields: TabSpecificField.OWNERS,
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.CONTAINER:
 | 
					 | 
				
			||||||
        promise = getContainerByFQN(entityFQN, {
 | 
					 | 
				
			||||||
          fields: TabSpecificField.OWNERS,
 | 
					 | 
				
			||||||
          include: Include.All,
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.DASHBOARD_DATA_MODEL:
 | 
					 | 
				
			||||||
        promise = getDataModelByFqn(entityFQN, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.STORED_PROCEDURE:
 | 
					 | 
				
			||||||
        promise = getStoredProceduresByFqn(entityFQN, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.DOMAIN:
 | 
					 | 
				
			||||||
        promise = getDomainByName(entityFQN, {
 | 
					 | 
				
			||||||
          fields: TabSpecificField.OWNERS,
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.DATA_PRODUCT:
 | 
					 | 
				
			||||||
        promise = getDataProductByName(entityFQN, {
 | 
					 | 
				
			||||||
          fields: [TabSpecificField.OWNERS, TabSpecificField.DOMAINS],
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.TAG:
 | 
					 | 
				
			||||||
        promise = getTagByFqn(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.API_COLLECTION:
 | 
					 | 
				
			||||||
        promise = getApiCollectionByFQN(entityFQN, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.API_ENDPOINT:
 | 
					 | 
				
			||||||
        promise = getApiEndPointByFQN(entityFQN, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
      case EntityType.METRIC:
 | 
					 | 
				
			||||||
        promise = getMetricByFqn(entityFQN, {
 | 
					 | 
				
			||||||
          fields: [
 | 
					 | 
				
			||||||
            TabSpecificField.OWNERS,
 | 
					 | 
				
			||||||
            TabSpecificField.TAGS,
 | 
					 | 
				
			||||||
            TabSpecificField.DOMAINS,
 | 
					 | 
				
			||||||
          ],
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.BOT:
 | 
					 | 
				
			||||||
        promise = getBotByName(entityFQN, {
 | 
					 | 
				
			||||||
          fields: [EntityType.BOT],
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.EVENT_SUBSCRIPTION:
 | 
					 | 
				
			||||||
        promise = getAlertsFromName(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.ROLE:
 | 
					 | 
				
			||||||
        promise = getRoleByName(entityFQN, '');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.POLICY:
 | 
					 | 
				
			||||||
        promise = getPolicyByName(entityFQN, '');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.CLASSIFICATION:
 | 
					 | 
				
			||||||
        promise = getClassificationByName(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.DATABASE_SERVICE:
 | 
					 | 
				
			||||||
      case EntityType.MESSAGING_SERVICE:
 | 
					 | 
				
			||||||
      case EntityType.DASHBOARD_SERVICE:
 | 
					 | 
				
			||||||
      case EntityType.PIPELINE_SERVICE:
 | 
					 | 
				
			||||||
      case EntityType.MLMODEL_SERVICE:
 | 
					 | 
				
			||||||
      case EntityType.STORAGE_SERVICE:
 | 
					 | 
				
			||||||
      case EntityType.SEARCH_SERVICE:
 | 
					 | 
				
			||||||
      case EntityType.API_SERVICE:
 | 
					 | 
				
			||||||
      case EntityType.SECURITY_SERVICE:
 | 
					 | 
				
			||||||
      case EntityType.METADATA_SERVICE:
 | 
					 | 
				
			||||||
        promise = getServiceByFQN(entityType, entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.TYPE:
 | 
					 | 
				
			||||||
        promise = getTypeByFQN(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.TEAM:
 | 
					 | 
				
			||||||
        promise = getTeamByName(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.USER:
 | 
					 | 
				
			||||||
        promise = getUserByName(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.TEST_SUITE:
 | 
					 | 
				
			||||||
        promise = getTestSuiteByName(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.KPI:
 | 
					 | 
				
			||||||
        promise = getKPIByName(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.SEARCH_INDEX:
 | 
					 | 
				
			||||||
        promise = getSearchIndexDetailsByFQN(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.APP_MARKET_PLACE_DEFINITION:
 | 
					 | 
				
			||||||
        promise = getMarketPlaceApplicationByFqn(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.APPLICATION:
 | 
					 | 
				
			||||||
        promise = getApplicationByName(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.PERSONA:
 | 
					 | 
				
			||||||
        promise = getPersonaByName(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.INGESTION_PIPELINE:
 | 
					 | 
				
			||||||
        promise = getIngestionPipelineByFqn(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.SERVICE:
 | 
					 | 
				
			||||||
        promise = getServiceByFQN(EntityType.SERVICE, entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.DATA_CONTRACT:
 | 
					 | 
				
			||||||
        promise = getContract(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.QUERY:
 | 
					 | 
				
			||||||
        promise = getQueryByFqn(entityFQN);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      default:
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (promise) {
 | 
					    if (promise) {
 | 
				
			||||||
      try {
 | 
					      try {
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,277 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Copyright 2024 Collate.
 | 
				
			||||||
 | 
					 *  Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					 *  you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					 *  You may obtain a copy of the License at
 | 
				
			||||||
 | 
					 *  http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					 *  Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					 *  distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					 *  See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					 *  limitations under the License.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { EntityType } from '../enums/entity.enum';
 | 
				
			||||||
 | 
					import * as alertsAPI from '../rest/alertsAPI';
 | 
				
			||||||
 | 
					import * as apiCollectionsAPI from '../rest/apiCollectionsAPI';
 | 
				
			||||||
 | 
					import * as apiEndpointsAPI from '../rest/apiEndpointsAPI';
 | 
				
			||||||
 | 
					import * as databaseAPI from '../rest/databaseAPI';
 | 
				
			||||||
 | 
					import * as glossaryAPI from '../rest/glossaryAPI';
 | 
				
			||||||
 | 
					import * as serviceAPI from '../rest/serviceAPI';
 | 
				
			||||||
 | 
					import * as tableAPI from '../rest/tableAPI';
 | 
				
			||||||
 | 
					import * as testAPI from '../rest/testAPI';
 | 
				
			||||||
 | 
					import { getEntityByFqnUtil } from './EntityByFqnUtils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jest.mock('../rest/tableAPI');
 | 
				
			||||||
 | 
					jest.mock('../rest/databaseAPI');
 | 
				
			||||||
 | 
					jest.mock('../rest/glossaryAPI');
 | 
				
			||||||
 | 
					jest.mock('../rest/serviceAPI');
 | 
				
			||||||
 | 
					jest.mock('../rest/alertsAPI');
 | 
				
			||||||
 | 
					jest.mock('../rest/apiCollectionsAPI');
 | 
				
			||||||
 | 
					jest.mock('../rest/apiEndpointsAPI');
 | 
				
			||||||
 | 
					jest.mock('../rest/testAPI');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('EntityByFqnUtils', () => {
 | 
				
			||||||
 | 
					  const mockFqn = 'test.fqn';
 | 
				
			||||||
 | 
					  const mockFields = 'owners,tags';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  beforeEach(() => {
 | 
				
			||||||
 | 
					    jest.clearAllMocks();
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe('getEntityByFqnUtil', () => {
 | 
				
			||||||
 | 
					    it('should fetch TABLE entity correctly', async () => {
 | 
				
			||||||
 | 
					      const mockTableData = { id: '1', name: 'test-table' };
 | 
				
			||||||
 | 
					      (tableAPI.getTableDetailsByFQN as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockTableData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(
 | 
				
			||||||
 | 
					        EntityType.TABLE,
 | 
				
			||||||
 | 
					        mockFqn,
 | 
				
			||||||
 | 
					        mockFields
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(tableAPI.getTableDetailsByFQN).toHaveBeenCalledWith(mockFqn, {
 | 
				
			||||||
 | 
					        fields: mockFields,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockTableData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch DATABASE entity with OWNERS field', async () => {
 | 
				
			||||||
 | 
					      const mockDatabaseData = { id: '1', name: 'test-db' };
 | 
				
			||||||
 | 
					      (databaseAPI.getDatabaseDetailsByFQN as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockDatabaseData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(EntityType.DATABASE, mockFqn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(databaseAPI.getDatabaseDetailsByFQN).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					        mockFqn,
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          fields: 'owners',
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockDatabaseData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch DATABASE_SCHEMA entity with OWNERS field and Include.All', async () => {
 | 
				
			||||||
 | 
					      const mockSchemaData = { id: '1', name: 'test-schema' };
 | 
				
			||||||
 | 
					      (
 | 
				
			||||||
 | 
					        databaseAPI.getDatabaseSchemaDetailsByFQN as jest.Mock
 | 
				
			||||||
 | 
					      ).mockResolvedValue(mockSchemaData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(
 | 
				
			||||||
 | 
					        EntityType.DATABASE_SCHEMA,
 | 
				
			||||||
 | 
					        mockFqn
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(databaseAPI.getDatabaseSchemaDetailsByFQN).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					        mockFqn,
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          fields: 'owners',
 | 
				
			||||||
 | 
					          include: 'all',
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockSchemaData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch GLOSSARY_TERM entity correctly', async () => {
 | 
				
			||||||
 | 
					      const mockGlossaryTermData = { id: '1', name: 'test-term' };
 | 
				
			||||||
 | 
					      (glossaryAPI.getGlossaryTermByFQN as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockGlossaryTermData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(
 | 
				
			||||||
 | 
					        EntityType.GLOSSARY_TERM,
 | 
				
			||||||
 | 
					        mockFqn
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(glossaryAPI.getGlossaryTermByFQN).toHaveBeenCalledWith(mockFqn, {
 | 
				
			||||||
 | 
					        fields: 'owners',
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockGlossaryTermData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch GLOSSARY entity correctly', async () => {
 | 
				
			||||||
 | 
					      const mockGlossaryData = { id: '1', name: 'test-glossary' };
 | 
				
			||||||
 | 
					      (glossaryAPI.getGlossariesByName as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockGlossaryData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(EntityType.GLOSSARY, mockFqn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(glossaryAPI.getGlossariesByName).toHaveBeenCalledWith(mockFqn, {
 | 
				
			||||||
 | 
					        fields: 'owners',
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockGlossaryData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch TEST_CASE entity with correct fields', async () => {
 | 
				
			||||||
 | 
					      const mockTestCaseData = { id: '1', name: 'test-case' };
 | 
				
			||||||
 | 
					      (testAPI.getTestCaseByFqn as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockTestCaseData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(EntityType.TEST_CASE, mockFqn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(testAPI.getTestCaseByFqn).toHaveBeenCalledWith(mockFqn, {
 | 
				
			||||||
 | 
					        fields: ['owners'],
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockTestCaseData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch DATABASE_SERVICE using getServiceByFQN', async () => {
 | 
				
			||||||
 | 
					      const mockServiceData = { id: '1', name: 'test-service' };
 | 
				
			||||||
 | 
					      (serviceAPI.getServiceByFQN as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockServiceData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(
 | 
				
			||||||
 | 
					        EntityType.DATABASE_SERVICE,
 | 
				
			||||||
 | 
					        mockFqn
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(serviceAPI.getServiceByFQN).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					        EntityType.DATABASE_SERVICE,
 | 
				
			||||||
 | 
					        mockFqn
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockServiceData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch MESSAGING_SERVICE using getServiceByFQN', async () => {
 | 
				
			||||||
 | 
					      const mockServiceData = { id: '1', name: 'test-messaging-service' };
 | 
				
			||||||
 | 
					      (serviceAPI.getServiceByFQN as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockServiceData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(
 | 
				
			||||||
 | 
					        EntityType.MESSAGING_SERVICE,
 | 
				
			||||||
 | 
					        mockFqn
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(serviceAPI.getServiceByFQN).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					        EntityType.MESSAGING_SERVICE,
 | 
				
			||||||
 | 
					        mockFqn
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockServiceData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch API_COLLECTION entity correctly', async () => {
 | 
				
			||||||
 | 
					      const mockAPICollectionData = { id: '1', name: 'test-collection' };
 | 
				
			||||||
 | 
					      (apiCollectionsAPI.getApiCollectionByFQN as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockAPICollectionData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(
 | 
				
			||||||
 | 
					        EntityType.API_COLLECTION,
 | 
				
			||||||
 | 
					        mockFqn,
 | 
				
			||||||
 | 
					        mockFields
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(apiCollectionsAPI.getApiCollectionByFQN).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					        mockFqn,
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          fields: mockFields,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockAPICollectionData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch API_ENDPOINT entity correctly', async () => {
 | 
				
			||||||
 | 
					      const mockAPIEndpointData = { id: '1', name: 'test-endpoint' };
 | 
				
			||||||
 | 
					      (apiEndpointsAPI.getApiEndPointByFQN as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockAPIEndpointData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(
 | 
				
			||||||
 | 
					        EntityType.API_ENDPOINT,
 | 
				
			||||||
 | 
					        mockFqn,
 | 
				
			||||||
 | 
					        mockFields
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(apiEndpointsAPI.getApiEndPointByFQN).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					        mockFqn,
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          fields: mockFields,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockAPIEndpointData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should fetch EVENT_SUBSCRIPTION entity correctly', async () => {
 | 
				
			||||||
 | 
					      const mockEventSubData = { id: '1', name: 'test-event-sub' };
 | 
				
			||||||
 | 
					      (alertsAPI.getAlertsFromName as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockEventSubData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil(
 | 
				
			||||||
 | 
					        EntityType.EVENT_SUBSCRIPTION,
 | 
				
			||||||
 | 
					        mockFqn
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(alertsAPI.getAlertsFromName).toHaveBeenCalledWith(mockFqn);
 | 
				
			||||||
 | 
					      expect(result).toEqual(mockEventSubData);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should return null for unknown entity type', async () => {
 | 
				
			||||||
 | 
					      const result = await getEntityByFqnUtil('UNKNOWN_TYPE', mockFqn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(result).toBeNull();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('should handle all service types correctly', async () => {
 | 
				
			||||||
 | 
					      const serviceTypes = [
 | 
				
			||||||
 | 
					        EntityType.DATABASE_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.MESSAGING_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.DASHBOARD_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.PIPELINE_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.MLMODEL_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.STORAGE_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.SEARCH_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.API_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.SECURITY_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.METADATA_SERVICE,
 | 
				
			||||||
 | 
					        EntityType.SERVICE,
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const mockServiceData = { id: '1', name: 'test-service' };
 | 
				
			||||||
 | 
					      (serviceAPI.getServiceByFQN as jest.Mock).mockResolvedValue(
 | 
				
			||||||
 | 
					        mockServiceData
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      for (const serviceType of serviceTypes) {
 | 
				
			||||||
 | 
					        await getEntityByFqnUtil(serviceType, mockFqn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        expect(serviceAPI.getServiceByFQN).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					          serviceType,
 | 
				
			||||||
 | 
					          mockFqn
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(serviceAPI.getServiceByFQN).toHaveBeenCalledTimes(
 | 
				
			||||||
 | 
					        serviceTypes.length
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
@ -0,0 +1,214 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Copyright 2024 Collate.
 | 
				
			||||||
 | 
					 *  Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					 *  you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					 *  You may obtain a copy of the License at
 | 
				
			||||||
 | 
					 *  http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					 *  Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					 *  distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					 *  See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					 *  limitations under the License.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { EntityUnion } from '../components/Explore/ExplorePage.interface';
 | 
				
			||||||
 | 
					import { EntityType, TabSpecificField } from '../enums/entity.enum';
 | 
				
			||||||
 | 
					import { Include } from '../generated/type/include';
 | 
				
			||||||
 | 
					import { getAlertsFromName } from '../rest/alertsAPI';
 | 
				
			||||||
 | 
					import { getApiCollectionByFQN } from '../rest/apiCollectionsAPI';
 | 
				
			||||||
 | 
					import { getApiEndPointByFQN } from '../rest/apiEndpointsAPI';
 | 
				
			||||||
 | 
					import { getApplicationByName } from '../rest/applicationAPI';
 | 
				
			||||||
 | 
					import { getMarketPlaceApplicationByFqn } from '../rest/applicationMarketPlaceAPI';
 | 
				
			||||||
 | 
					import { getChartByFqn } from '../rest/chartsAPI';
 | 
				
			||||||
 | 
					import { getContract } from '../rest/contractAPI';
 | 
				
			||||||
 | 
					import { getDashboardByFqn } from '../rest/dashboardAPI';
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  getDatabaseDetailsByFQN,
 | 
				
			||||||
 | 
					  getDatabaseSchemaDetailsByFQN,
 | 
				
			||||||
 | 
					} from '../rest/databaseAPI';
 | 
				
			||||||
 | 
					import { getDataModelByFqn } from '../rest/dataModelsAPI';
 | 
				
			||||||
 | 
					import { getDataProductByName } from '../rest/dataProductAPI';
 | 
				
			||||||
 | 
					import { getDomainByName } from '../rest/domainAPI';
 | 
				
			||||||
 | 
					import { getGlossariesByName, getGlossaryTermByFQN } from '../rest/glossaryAPI';
 | 
				
			||||||
 | 
					import { getIngestionPipelineByFqn } from '../rest/ingestionPipelineAPI';
 | 
				
			||||||
 | 
					import { getKPIByName } from '../rest/KpiAPI';
 | 
				
			||||||
 | 
					import { getTypeByFQN } from '../rest/metadataTypeAPI';
 | 
				
			||||||
 | 
					import { getMetricByFqn } from '../rest/metricsAPI';
 | 
				
			||||||
 | 
					import { getMlModelByFQN } from '../rest/mlModelAPI';
 | 
				
			||||||
 | 
					import { getPersonaByName } from '../rest/PersonaAPI';
 | 
				
			||||||
 | 
					import { getPipelineByFqn } from '../rest/pipelineAPI';
 | 
				
			||||||
 | 
					import { getQueryByFqn } from '../rest/queryAPI';
 | 
				
			||||||
 | 
					import { getPolicyByName, getRoleByName } from '../rest/rolesAPIV1';
 | 
				
			||||||
 | 
					import { getSearchIndexDetailsByFQN } from '../rest/SearchIndexAPI';
 | 
				
			||||||
 | 
					import { getServiceByFQN } from '../rest/serviceAPI';
 | 
				
			||||||
 | 
					import { getContainerByFQN } from '../rest/storageAPI';
 | 
				
			||||||
 | 
					import { getStoredProceduresByFqn } from '../rest/storedProceduresAPI';
 | 
				
			||||||
 | 
					import { getTableDetailsByFQN } from '../rest/tableAPI';
 | 
				
			||||||
 | 
					import { getClassificationByName, getTagByFqn } from '../rest/tagAPI';
 | 
				
			||||||
 | 
					import { getTeamByName } from '../rest/teamsAPI';
 | 
				
			||||||
 | 
					import { getTestCaseByFqn, getTestSuiteByName } from '../rest/testAPI';
 | 
				
			||||||
 | 
					import { getTopicByFqn } from '../rest/topicsAPI';
 | 
				
			||||||
 | 
					import { getBotByName, getUserByName } from '../rest/userAPI';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const getEntityByFqnUtil = (
 | 
				
			||||||
 | 
					  entityType: string,
 | 
				
			||||||
 | 
					  entityFQN: string,
 | 
				
			||||||
 | 
					  fields?: string
 | 
				
			||||||
 | 
					): Promise<EntityUnion> | null => {
 | 
				
			||||||
 | 
					  switch (entityType) {
 | 
				
			||||||
 | 
					    case EntityType.TABLE:
 | 
				
			||||||
 | 
					      return getTableDetailsByFQN(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.TEST_CASE:
 | 
				
			||||||
 | 
					      return getTestCaseByFqn(entityFQN, {
 | 
				
			||||||
 | 
					        fields: [TabSpecificField.OWNERS],
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.TOPIC:
 | 
				
			||||||
 | 
					      return getTopicByFqn(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.DASHBOARD:
 | 
				
			||||||
 | 
					      return getDashboardByFqn(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.CHART:
 | 
				
			||||||
 | 
					      return getChartByFqn(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.PIPELINE:
 | 
				
			||||||
 | 
					      return getPipelineByFqn(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.MLMODEL:
 | 
				
			||||||
 | 
					      return getMlModelByFQN(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.DATABASE:
 | 
				
			||||||
 | 
					      return getDatabaseDetailsByFQN(entityFQN, {
 | 
				
			||||||
 | 
					        fields: TabSpecificField.OWNERS,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.DATABASE_SCHEMA:
 | 
				
			||||||
 | 
					      return getDatabaseSchemaDetailsByFQN(entityFQN, {
 | 
				
			||||||
 | 
					        fields: TabSpecificField.OWNERS,
 | 
				
			||||||
 | 
					        include: Include.All,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.GLOSSARY_TERM:
 | 
				
			||||||
 | 
					      return getGlossaryTermByFQN(entityFQN, {
 | 
				
			||||||
 | 
					        fields: TabSpecificField.OWNERS,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.GLOSSARY:
 | 
				
			||||||
 | 
					      return getGlossariesByName(entityFQN, {
 | 
				
			||||||
 | 
					        fields: TabSpecificField.OWNERS,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.CONTAINER:
 | 
				
			||||||
 | 
					      return getContainerByFQN(entityFQN, {
 | 
				
			||||||
 | 
					        fields: TabSpecificField.OWNERS,
 | 
				
			||||||
 | 
					        include: Include.All,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.DASHBOARD_DATA_MODEL:
 | 
				
			||||||
 | 
					      return getDataModelByFqn(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.STORED_PROCEDURE:
 | 
				
			||||||
 | 
					      return getStoredProceduresByFqn(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.DOMAIN:
 | 
				
			||||||
 | 
					      return getDomainByName(entityFQN, {
 | 
				
			||||||
 | 
					        fields: TabSpecificField.OWNERS,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.DATA_PRODUCT:
 | 
				
			||||||
 | 
					      return getDataProductByName(entityFQN, {
 | 
				
			||||||
 | 
					        fields: [TabSpecificField.OWNERS, TabSpecificField.DOMAINS],
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.TAG:
 | 
				
			||||||
 | 
					      return getTagByFqn(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.API_COLLECTION:
 | 
				
			||||||
 | 
					      return getApiCollectionByFQN(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.API_ENDPOINT:
 | 
				
			||||||
 | 
					      return getApiEndPointByFQN(entityFQN, { fields });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.METRIC:
 | 
				
			||||||
 | 
					      return getMetricByFqn(entityFQN, {
 | 
				
			||||||
 | 
					        fields: [
 | 
				
			||||||
 | 
					          TabSpecificField.OWNERS,
 | 
				
			||||||
 | 
					          TabSpecificField.TAGS,
 | 
				
			||||||
 | 
					          TabSpecificField.DOMAINS,
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.BOT:
 | 
				
			||||||
 | 
					      return getBotByName(entityFQN, {
 | 
				
			||||||
 | 
					        fields: [EntityType.BOT],
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.EVENT_SUBSCRIPTION:
 | 
				
			||||||
 | 
					      return getAlertsFromName(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.ROLE:
 | 
				
			||||||
 | 
					      return getRoleByName(entityFQN, '');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.POLICY:
 | 
				
			||||||
 | 
					      return getPolicyByName(entityFQN, '');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.CLASSIFICATION:
 | 
				
			||||||
 | 
					      return getClassificationByName(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.DATABASE_SERVICE:
 | 
				
			||||||
 | 
					    case EntityType.MESSAGING_SERVICE:
 | 
				
			||||||
 | 
					    case EntityType.DASHBOARD_SERVICE:
 | 
				
			||||||
 | 
					    case EntityType.PIPELINE_SERVICE:
 | 
				
			||||||
 | 
					    case EntityType.MLMODEL_SERVICE:
 | 
				
			||||||
 | 
					    case EntityType.STORAGE_SERVICE:
 | 
				
			||||||
 | 
					    case EntityType.SEARCH_SERVICE:
 | 
				
			||||||
 | 
					    case EntityType.API_SERVICE:
 | 
				
			||||||
 | 
					    case EntityType.SECURITY_SERVICE:
 | 
				
			||||||
 | 
					    case EntityType.METADATA_SERVICE:
 | 
				
			||||||
 | 
					      return getServiceByFQN(entityType, entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.TYPE:
 | 
				
			||||||
 | 
					      return getTypeByFQN(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.TEAM:
 | 
				
			||||||
 | 
					      return getTeamByName(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.USER:
 | 
				
			||||||
 | 
					      return getUserByName(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.TEST_SUITE:
 | 
				
			||||||
 | 
					      return getTestSuiteByName(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.KPI:
 | 
				
			||||||
 | 
					      return getKPIByName(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.SEARCH_INDEX:
 | 
				
			||||||
 | 
					      return getSearchIndexDetailsByFQN(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.APP_MARKET_PLACE_DEFINITION:
 | 
				
			||||||
 | 
					      return getMarketPlaceApplicationByFqn(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.APPLICATION:
 | 
				
			||||||
 | 
					      return getApplicationByName(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.PERSONA:
 | 
				
			||||||
 | 
					      return getPersonaByName(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.INGESTION_PIPELINE:
 | 
				
			||||||
 | 
					      return getIngestionPipelineByFqn(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.SERVICE:
 | 
				
			||||||
 | 
					      return getServiceByFQN(EntityType.SERVICE, entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.DATA_CONTRACT:
 | 
				
			||||||
 | 
					      return getContract(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case EntityType.QUERY:
 | 
				
			||||||
 | 
					      return getQueryByFqn(entityFQN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					      return null;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -47,16 +47,10 @@ import StoredProcedurePage from '../pages/StoredProcedure/StoredProcedurePage';
 | 
				
			|||||||
import TableDetailsPageV1 from '../pages/TableDetailsPageV1/TableDetailsPageV1';
 | 
					import TableDetailsPageV1 from '../pages/TableDetailsPageV1/TableDetailsPageV1';
 | 
				
			||||||
import TopicDetailsPage from '../pages/TopicDetails/TopicDetailsPage.component';
 | 
					import TopicDetailsPage from '../pages/TopicDetails/TopicDetailsPage.component';
 | 
				
			||||||
import WorksheetDetailsPage from '../pages/WorksheetDetailsPage/WorksheetDetailsPage';
 | 
					import WorksheetDetailsPage from '../pages/WorksheetDetailsPage/WorksheetDetailsPage';
 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  getDatabaseDetailsByFQN,
 | 
					 | 
				
			||||||
  getDatabaseSchemaDetailsByFQN,
 | 
					 | 
				
			||||||
} from '../rest/databaseAPI';
 | 
					 | 
				
			||||||
import { getGlossariesByName } from '../rest/glossaryAPI';
 | 
					 | 
				
			||||||
import { getServiceByFQN } from '../rest/serviceAPI';
 | 
					 | 
				
			||||||
import { getTableDetailsByFQN } from '../rest/tableAPI';
 | 
					 | 
				
			||||||
import { ExtraDatabaseDropdownOptions } from './Database/Database.util';
 | 
					import { ExtraDatabaseDropdownOptions } from './Database/Database.util';
 | 
				
			||||||
import { ExtraDatabaseSchemaDropdownOptions } from './DatabaseSchemaDetailsUtils';
 | 
					import { ExtraDatabaseSchemaDropdownOptions } from './DatabaseSchemaDetailsUtils';
 | 
				
			||||||
import { ExtraDatabaseServiceDropdownOptions } from './DatabaseServiceUtils';
 | 
					import { ExtraDatabaseServiceDropdownOptions } from './DatabaseServiceUtils';
 | 
				
			||||||
 | 
					import { getEntityByFqnUtil } from './EntityByFqnUtils';
 | 
				
			||||||
import { EntityTypeName } from './EntityUtils';
 | 
					import { EntityTypeName } from './EntityUtils';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  FormattedAPIServiceType,
 | 
					  FormattedAPIServiceType,
 | 
				
			||||||
@ -372,20 +366,8 @@ class EntityUtilClassBase {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public getEntityByFqn(entityType: string, fqn: string, fields?: string[]) {
 | 
					  public getEntityByFqn(entityType: string, fqn: string, fields?: string) {
 | 
				
			||||||
    switch (entityType) {
 | 
					    return getEntityByFqnUtil(entityType, fqn, fields);
 | 
				
			||||||
      case EntityType.DATABASE_SERVICE:
 | 
					 | 
				
			||||||
        return getServiceByFQN('databaseServices', fqn, { fields });
 | 
					 | 
				
			||||||
      case EntityType.DATABASE:
 | 
					 | 
				
			||||||
        return getDatabaseDetailsByFQN(fqn, { fields });
 | 
					 | 
				
			||||||
      case EntityType.DATABASE_SCHEMA:
 | 
					 | 
				
			||||||
        return getDatabaseSchemaDetailsByFQN(fqn, { fields });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case EntityType.GLOSSARY_TERM:
 | 
					 | 
				
			||||||
        return getGlossariesByName(fqn, { fields });
 | 
					 | 
				
			||||||
      default:
 | 
					 | 
				
			||||||
        return getTableDetailsByFQN(fqn, { fields });
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public getEntityDetailComponent(entityType: string): FC | null {
 | 
					  public getEntityDetailComponent(entityType: string): FC | null {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user