diff --git a/src/plugins/data/server/autocomplete/terms_enum.test.ts b/src/plugins/data/server/autocomplete/terms_enum.test.ts index 41eaf3f4032ab0..4e1eecc71db7ca 100644 --- a/src/plugins/data/server/autocomplete/terms_enum.test.ts +++ b/src/plugins/data/server/autocomplete/terms_enum.test.ts @@ -12,6 +12,7 @@ import { ElasticsearchClient, SavedObjectsClientContract } from 'kibana/server'; import { ConfigSchema } from '../../config'; import type { DeeplyMockedKeys } from '@kbn/utility-types/jest'; import type { ApiResponse } from '@elastic/elasticsearch'; +import { TermsEnumResponse } from '@elastic/elasticsearch/api/types'; let savedObjectsClientMock: jest.Mocked; let esClientMock: DeeplyMockedKeys; @@ -29,7 +30,9 @@ describe('_terms_enum suggestions', () => { const requestHandlerContext = coreMock.createRequestHandlerContext(); savedObjectsClientMock = requestHandlerContext.savedObjects.client; esClientMock = requestHandlerContext.elasticsearch.client.asCurrentUser; - esClientMock.transport.request.mockResolvedValue((mockResponse as unknown) as ApiResponse); + esClientMock.termsEnum.mockResolvedValue( + (mockResponse as unknown) as ApiResponse + ); }); it('calls the _terms_enum API with the field, query, filters, and config tiers', async () => { @@ -44,7 +47,7 @@ describe('_terms_enum suggestions', () => { { name: 'field_name', type: 'string' } ); - const [[args]] = esClientMock.transport.request.mock.calls; + const [[args]] = esClientMock.termsEnum.mock.calls; expect(args).toMatchInlineSnapshot(` Object { @@ -67,8 +70,7 @@ describe('_terms_enum suggestions', () => { }, "string": "query", }, - "method": "POST", - "path": "/index/_terms_enum", + "index": "index", } `); expect(result).toEqual(mockResponse.body.terms); @@ -85,7 +87,7 @@ describe('_terms_enum suggestions', () => { [] ); - const [[args]] = esClientMock.transport.request.mock.calls; + const [[args]] = esClientMock.termsEnum.mock.calls; expect(args).toMatchInlineSnapshot(` Object { @@ -108,8 +110,7 @@ describe('_terms_enum suggestions', () => { }, "string": "query", }, - "method": "POST", - "path": "/index/_terms_enum", + "index": "index", } `); expect(result).toEqual(mockResponse.body.terms); diff --git a/src/plugins/data/server/autocomplete/terms_enum.ts b/src/plugins/data/server/autocomplete/terms_enum.ts index 40329586a36218..4bfd1545c6fe56 100644 --- a/src/plugins/data/server/autocomplete/terms_enum.ts +++ b/src/plugins/data/server/autocomplete/terms_enum.ts @@ -11,7 +11,6 @@ import { estypes } from '@elastic/elasticsearch'; import { IFieldType } from '../../common'; import { findIndexPatternById, getFieldByName } from '../index_patterns'; import { shimAbortSignal } from '../search'; -import { getKbnServerError } from '../../../kibana_utils/server'; import { ConfigSchema } from '../../config'; export async function termsEnumSuggestions( @@ -31,32 +30,26 @@ export async function termsEnumSuggestions( field = indexPattern && getFieldByName(fieldName, indexPattern); } - try { - const promise = esClient.transport.request({ - method: 'POST', - path: encodeURI(`/${index}/_terms_enum`), - body: { - field: field?.name ?? fieldName, - string: query, - index_filter: { - bool: { - must: [ - ...(filters ?? []), - { - terms: { - _tier: tiers, - }, + const promise = esClient.termsEnum({ + index, + body: { + field: field?.name ?? fieldName, + string: query, + index_filter: { + bool: { + must: [ + ...(filters ?? []), + { + terms: { + _tier: tiers, }, - ], - }, + }, + ], }, }, - }); + }, + }); - const result = await shimAbortSignal(promise, abortSignal); - - return result.body.terms; - } catch (e) { - throw getKbnServerError(e); - } + const result = await shimAbortSignal(promise, abortSignal); + return result.body.terms; }