blob: fea1b7b88acbfe47a5b1593ff6fd38f99ff7a7bd [file]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 {
auditApiurl,
detailpageApiUrl,
detailPageAuditApiUrl,
detailPageBusinessMetadataApiUrl,
detailPageLabelApiUrl,
detailPageRauditApiUrl,
detailPageRelationshipApiUrl,
detailPageRelationshipAttributesApiUrl
} from "../apiUrlLinks/detailpageUrl";
import { _get, _post } from "./apiMethod";
const getDetailPageData = (guid: string, params: object, header?: string) => {
const config = {
method: "GET",
params: { ...params, ignoreRelationships: true }
};
return _get(detailpageApiUrl(guid, header), config);
};
const getDetailPageAuditData = (guid: string, params: object) => {
const config = {
method: "GET",
params: params
};
return _get(detailPageAuditApiUrl(guid), config);
};
const getDetailPageRauditData = (params: object) => {
const config = {
method: "GET",
params: params
};
return _get(detailPageRauditApiUrl(), config);
};
const getAuditData = (params: object) => {
const config = {
method: "POST",
params: {},
data: params
};
return _get(auditApiurl(), config);
};
const getEntityHeader = (guid: string) => {
const config = {
method: "GET",
params: {}
};
return _get(detailpageApiUrl(guid, "header"), config);
};
const getLabels = (guid: string, formData: string[]) => {
const config = {
method: "POST",
params: {},
data: formData
};
return _post(detailPageLabelApiUrl(guid), config);
};
const getEntityBusinessMetadata = (guid: string, formData: object) => {
const config = {
method: "POST",
params: { isOverwrite: true },
data: formData
};
return _get(detailPageBusinessMetadataApiUrl(guid), config);
};
const getDetailPageRelationship = (guid: string) => {
const config = {
method: "GET",
params: {}
};
return _get(detailPageRelationshipApiUrl(guid), config);
};
// TODO: Mock data for relationship attributes (disabled now that API is used).
// const MOCK_DATA_CONFIG: Record<string, number> = {
// tables: 500,
// inputToProcess: 150,
// "outputTo Process": 3,
// ddlQueries: 230,
// outputFromProcesses: 1,
// model: 0
// };
//
// const getMockRelationshipAttributes = (
// params: { limit?: number; offset?: number; attributeName?: string }
// ) => {
// const limit = params.limit || 100;
// const offset = params.offset || 0;
// const attributeName = params.attributeName;
//
// const generateMockItem = (index: number, type: string) => {
// const cleanType = type.replace(/\s+/g, "");
// const displayIndex = offset + index + 1;
//
// return {
// guid: `mock-guid-${cleanType}-${displayIndex}`,
// typeName: "hive_table",
// entityStatus: "ACTIVE",
// displayText: `hivetable${displayIndex}`,
// relationshipType: `hive_table_db`,
// relationshipGuid: `mock-rel-guid-${cleanType}-${displayIndex}`,
// relationshipStatus: "ACTIVE",
// relationshipAttributes: {
// typeName: `hive_table_db`
// },
// qualifiedName: `db88232_1.hivetable${displayIndex}@cm`
// };
// };
//
// if (attributeName) {
// const totalCount = MOCK_DATA_CONFIG[attributeName] || 0;
// const remainingCount = Math.max(0, totalCount - offset);
// const itemCount = Math.min(limit, remainingCount);
//
// const mockData = [];
// for (let i = 0; i < itemCount; i++) {
// mockData.push(generateMockItem(i, attributeName));
// }
//
// return {
// data: {
// relationshipAttributes: {
// [attributeName]: mockData
// },
// totalCounts: {
// [attributeName]: totalCount
// }
// }
// };
// }
//
// const mockResponse: any = {
// data: {
// relationshipAttributes: {},
// totalCounts: {}
// }
// };
//
// const relationshipTypes = [
// "tables",
// "inputToProcess",
// "outputTo Process",
// "ddlQueries",
// "outputFromProcesses",
// "model"
// ];
//
// relationshipTypes.forEach((type) => {
// const totalCount = MOCK_DATA_CONFIG[type] || 0;
// const itemCount = Math.min(limit, totalCount);
//
// const mockData = [];
// for (let i = 0; i < itemCount; i++) {
// mockData.push(generateMockItem(i, type));
// }
//
// mockResponse.data.relationshipAttributes[type] = mockData;
// mockResponse.data.totalCounts[type] = totalCount;
// });
//
// return mockResponse;
// };
const getDetailPageRelationshipAttributes = async (
guid: string,
params: { limit?: number; offset?: number; attributeName?: string }
) => {
const config = {
method: "GET",
params: params
};
try {
return await _get(detailPageRelationshipAttributesApiUrl(guid), config);
} catch (error: any) {
// Mock fallback disabled now that real API is used.
// return getMockRelationshipAttributes(params);
throw error;
}
};
export {
getDetailPageData,
getDetailPageAuditData,
getDetailPageRauditData,
getAuditData,
getEntityHeader,
getLabels,
getEntityBusinessMetadata,
getDetailPageRelationship,
getDetailPageRelationshipAttributes
};