diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/domain.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/domain.ts index 8349afd02f1..b12cf4f0790 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/domain.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/domain.ts @@ -183,9 +183,14 @@ export const selectDataProductFromTab = async ( page: Page, dataProduct: DataProduct['data'] ) => { - const dpRes = page.waitForResponse( - '/api/v1/search/query?*&from=0&size=50&index=data_product_search_index*' - ); + const dpRes = page.waitForResponse((response) => { + const url = response.url(); + + return ( + url.includes('/api/v1/search/query') && + url.includes('index=data_product_search_index') + ); + }); await page .locator('.domain-details-page-tabs') .getByText('Data Products') diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/Services.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/Services.tsx index 4b5c469ec9e..05d58776ef1 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/Services.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/Services.tsx @@ -50,7 +50,6 @@ import { getAddServicePath, getServiceDetailsPath, } from '../../../utils/RouterUtils'; -import { getTermQuery } from '../../../utils/SearchUtils'; import { getOptionalFields, getResourceEntityFromServiceCategory, @@ -101,9 +100,11 @@ const Services = ({ serviceName }: ServicesProps) => { const [deleted, setDeleted] = useState(false); const { permissions } = usePermissionProvider(); - const serviceTypeQueryFilter = useMemo(() => { + const filterString = useMemo(() => { return serviceTypeFilter?.length - ? getTermQuery({ 'serviceType.keyword': serviceTypeFilter }, 'should', 1) + ? `(${serviceTypeFilter + .map((type) => `serviceType:${type}`) + .join(' OR ')})` : undefined; }, [serviceTypeFilter]); @@ -141,19 +142,19 @@ const Services = ({ serviceName }: ServicesProps) => { currentPage, after, before, - queryFilter, + filters, }: { search?: string; limit?: number; currentPage?: number; after?: string; before?: string; - queryFilter?: Record; + filters?: string; }) => { setIsLoading(true); try { let services = []; - if (search || queryFilter) { + if (search || !isEmpty(filters)) { const { hits: { hits, total }, } = await searchService({ @@ -161,7 +162,7 @@ const Services = ({ serviceName }: ServicesProps) => { searchIndex, limit: pageSize, currentPage, - queryFilter, + filters, deleted, }); @@ -205,23 +206,23 @@ const Services = ({ serviceName }: ServicesProps) => { const handleServicePageChange = useCallback( ({ cursorType, currentPage }: PagingHandlerParams) => { - if (searchTerm || serviceTypeQueryFilter) { + if (searchTerm || filterString) { handlePageChange(currentPage); getServiceDetails({ currentPage, search: searchTerm, limit: pageSize, - queryFilter: serviceTypeQueryFilter, + filters: filterString, }); } else if (cursorType) { handlePageChange(currentPage); getServiceDetails({ [cursorType]: paging[cursorType], - queryFilter: serviceTypeQueryFilter, + filters: filterString, }); } }, - [getServiceDetails, searchTerm, serviceTypeQueryFilter, paging, pageSize] + [getServiceDetails, searchTerm, filterString, paging, pageSize] ); const addServicePermission = useMemo( @@ -270,11 +271,7 @@ const Services = ({ serviceName }: ServicesProps) => { }, [serviceName]); const noDataPlaceholder = useMemo(() => { - if ( - addServicePermission && - isEmpty(searchTerm) && - !serviceTypeQueryFilter - ) { + if (addServicePermission && isEmpty(searchTerm) && !filterString) { return ( { servicesDisplayName, serviceName, searchTerm, - serviceTypeQueryFilter, + filterString, addServicePermission, handleAddServiceClick, ]); @@ -466,16 +463,9 @@ const Services = ({ serviceName }: ServicesProps) => { getServiceDetails({ search: searchTerm, limit: pageSize, - queryFilter: serviceTypeQueryFilter, + filters: filterString, }); - }, [ - searchIndex, - pageSize, - serviceName, - searchTerm, - serviceTypeQueryFilter, - deleted, - ]); + }, [searchIndex, pageSize, serviceName, searchTerm, filterString, deleted]); const handleTableChange: TableProps['onChange'] = ( _pagination, diff --git a/openmetadata-ui/src/main/resources/ui/src/rest/serviceAPI.ts b/openmetadata-ui/src/main/resources/ui/src/rest/serviceAPI.ts index 2e5c7adeebc..fe94a05b218 100644 --- a/openmetadata-ui/src/main/resources/ui/src/rest/serviceAPI.ts +++ b/openmetadata-ui/src/main/resources/ui/src/rest/serviceAPI.ts @@ -31,7 +31,7 @@ import { } from '../interface/service.interface'; import { getEncodedFqn } from '../utils/StringsUtils'; import APIClient from './index'; -import { searchQuery } from './searchAPI'; +import { searchData } from './miscAPI'; interface ServiceRequestParams { limit?: number; @@ -183,26 +183,28 @@ export const searchService = async ({ searchIndex, currentPage = 1, limit = PAGE_SIZE, - queryFilter, + filters, deleted = false, }: { search?: string; searchIndex: SearchIndex | SearchIndex[]; limit?: number; currentPage?: number; - queryFilter?: Record; + filters?: string; deleted?: boolean; }) => { - const response = await searchQuery({ - query: search ?? WILD_CARD_CHAR, - pageNumber: currentPage, - pageSize: limit, - queryFilter, + const response = await searchData( + search ?? WILD_CARD_CHAR, + currentPage, + limit, + filters ?? '', + '', + '', searchIndex, - includeDeleted: deleted, - }); + deleted + ); - return response; + return response.data; }; export const restoreService = async (serviceCategory: string, id: string) => {