rez-table-listing-mui
Version:
A rez table listing component built on TanStack Table
161 lines (143 loc) • 4.2 kB
text/typescript
import { api } from "./common";
import {
createSavedFilterPayload,
deleteSavedFilterPayload,
updateSavedFilterPayload,
} from "../../types/filter";
import { viewSettingsDropDownAPIProps } from "../../types/common";
export const entityTableMetaMaster = async (entity_type: string) => {
try {
const response = await api.post(
`/meta/get-table-data?entity_type=${entity_type}&list_type=${entity_type}`
);
const rawColumns = response.data?.data?.column_list || [];
const res = rawColumns.map((item: any) => ({
id: item.attribute_key,
accessorKey: item.attribute_key,
header: item.name,
}));
return { res };
} catch (error) {
console.error("Failed to fetch table meta:", error);
return { res: [] };
}
};
export const entityTableFilterMaster = async (entity_type: string) => {
try {
const response = await api.post(
`/meta/get-table-data?entity_type=${entity_type}&list_type=${entity_type}`
);
// const filteredData = {
// ...response.data.data,
// column_list: response.data.data.column_list.filter(
// (item: any) => item.attribute_key !== "action"
// ),
// };
// return response.data.data;
// return filteredData; // FOR ACTION COLUMN REMOVE
return response.data.data;
} catch (error) {
console.error("Failed to fetch filter operation list meta:", error);
}
};
export const fetchDetailsByFilterId = async (filterId: string) => {
const response = await api.get(`/filter/${filterId}`);
return response.data;
};
export const commonGetDropdownDataAPI = async (
entity_type: string,
// organization_id?: string | null,
data?: any
) => {
try {
const requestBody = {
status: "ACTIVE",
organization_id: 1,
...data,
};
const response = await api.post(
`/list-master/getDropdownData/${entity_type}`,
requestBody
);
return response.data;
} catch (error) {
console.error("Failed to fetch dropdown data:", error);
throw error;
}
};
export const createSavedFilter = async (
entity_type: string,
payload: createSavedFilterPayload
) => {
try {
const response = await api.post(
`/entity/create?entity_type=${entity_type}`,
payload
);
return response.data;
} catch (error) {
console.error("Failed to fetch saved filter list:", error);
throw error;
}
};
export const deleteSavedFilter = async (
entity_type: string,
payload: deleteSavedFilterPayload
) => {
try {
const response = await api.post(
`/entity/update/${payload?.id}?entity_type=${entity_type}`,
payload
);
return response.data;
} catch (error) {
console.error("Failed to delete saved filter:", error);
throw error;
}
};
export const updateSavedFilter = async (
entity_type: string,
payload: updateSavedFilterPayload
) => {
try {
const response = await api.post(
`/entity/update/${payload?.id}?entity_type=${entity_type}`,
payload
);
return response.data;
} catch (error) {
console.error("Failed to update saved filter:", error);
throw error;
}
};
// ALL View Settings API
export const saveSettingsData = async (payload: any) => {
try {
const response = await api.post(`/entity/create?entity_type=LAP`, payload);
return response.data;
} catch (error) {
console.error("Failed to save settings data:", error);
throw error;
}
};
export const getSettingsData = async (entity_type: any) => {
try {
const response = await api.get(
`layout-preference?entity_type=${entity_type}`
);
return response.data;
} catch (error) {
console.error("Failed to fetch settings data:", error);
throw error;
}
};
export const viewSettingsDropDown = async ({
entity_type,
column,
sort_by,
}: viewSettingsDropDownAPIProps): Promise<Array<string>> => {
const response = await api.get(
`/layout-preference/column?entity_type=${entity_type}&column=${column}&sort_by=${sort_by}`
);
return response.data;
};