diff --git a/x-pack/plugins/endpoint/server/routes/endpoints.test.ts b/x-pack/plugins/endpoint/server/routes/endpoints.test.ts index 5bbbbc26dfa2f4..60433f86b6f7ed 100644 --- a/x-pack/plugins/endpoint/server/routes/endpoints.test.ts +++ b/x-pack/plugins/endpoint/server/routes/endpoints.test.ts @@ -75,19 +75,19 @@ describe('test endpoint route', () => { const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as EndpointResultList; expect(endpointResultList.endpoints.length).toEqual(3); expect(endpointResultList.total).toEqual(3); - expect(endpointResultList.requestIndex).toEqual(0); - expect(endpointResultList.requestPageSize).toEqual(10); + expect(endpointResultList.request_index).toEqual(0); + expect(endpointResultList.request_page_size).toEqual(10); }); it('test find the latest of all endpoints with params', async () => { const mockRequest = httpServerMock.createKibanaRequest({ body: { - pagingProperties: [ + paging_properties: [ { - pageSize: 10, + page_size: 10, }, { - pageIndex: 1, + page_index: 1, }, ], }, @@ -117,7 +117,7 @@ describe('test endpoint route', () => { const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as EndpointResultList; expect(endpointResultList.endpoints.length).toEqual(3); expect(endpointResultList.total).toEqual(3); - expect(endpointResultList.requestIndex).toEqual(10); - expect(endpointResultList.requestPageSize).toEqual(10); + expect(endpointResultList.request_index).toEqual(10); + expect(endpointResultList.request_page_size).toEqual(10); }); }); diff --git a/x-pack/plugins/endpoint/server/routes/endpoints.ts b/x-pack/plugins/endpoint/server/routes/endpoints.ts index 828bacfb725e9e..59430947d97da7 100644 --- a/x-pack/plugins/endpoint/server/routes/endpoints.ts +++ b/x-pack/plugins/endpoint/server/routes/endpoints.ts @@ -9,8 +9,6 @@ import { SearchResponse } from 'elasticsearch'; import { schema } from '@kbn/config-schema'; import { EndpointAppContext, EndpointData } from '../types'; import { kibanaRequestToEndpointListQuery } from '../services/endpoint/endpoint_query_builders'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { RouteSchemas } from '../../../../../src/core/server/http/router/route'; interface HitSource { _source: EndpointData; @@ -22,33 +20,31 @@ export interface EndpointResultList { // the total number of unique endpoints in the index total: number; // the page size requested - requestPageSize: number; + request_page_size: number; // the index requested - requestIndex: number; + request_index: number; } -const endpointListRequestSchema: RouteSchemas = { - body: schema.nullable( - schema.object({ - pagingProperties: schema.arrayOf( - schema.oneOf([ - // the number of results to return for this request per page - schema.object({ - pageSize: schema.number({ defaultValue: 10, min: 1, max: 10000 }), - }), - // the index of the page to return - schema.object({ pageIndex: schema.number({ defaultValue: 0, min: 0 }) }), - ]) - ), - }) - ), -}; - export function registerEndpointRoutes(router: IRouter, endpointAppContext: EndpointAppContext) { router.post( { path: '/api/endpoint/endpoints', - validate: endpointListRequestSchema, + validate: { + body: schema.nullable( + schema.object({ + paging_properties: schema.arrayOf( + schema.oneOf([ + // the number of results to return for this request per page + schema.object({ + page_size: schema.number({ defaultValue: 10, min: 1, max: 10000 }), + }), + // the index of the page to return + schema.object({ page_index: schema.number({ defaultValue: 0, min: 0 }) }), + ]) + ), + }) + ), + }, options: { authRequired: true }, }, async (context, req, res) => { @@ -72,8 +68,8 @@ function mapToEndpointResultList( ): EndpointResultList { if (searchResponse.hits.hits.length > 0) { return { - requestPageSize: queryParams.size, - requestIndex: queryParams.from, + request_page_size: queryParams.size, + request_index: queryParams.from, endpoints: searchResponse.hits.hits .map(response => response.inner_hits.most_recent.hits.hits) .flatMap(data => data as HitSource) @@ -82,8 +78,8 @@ function mapToEndpointResultList( }; } else { return { - requestPageSize: queryParams.size, - requestIndex: queryParams.from, + request_page_size: queryParams.size, + request_index: queryParams.from, total: 0, endpoints: [], }; diff --git a/x-pack/plugins/endpoint/server/services/endpoint/endpoint_query_builders.ts b/x-pack/plugins/endpoint/server/services/endpoint/endpoint_query_builders.ts index f69a72d1427e5f..7430ba97216083 100644 --- a/x-pack/plugins/endpoint/server/services/endpoint/endpoint_query_builders.ts +++ b/x-pack/plugins/endpoint/server/services/endpoint/endpoint_query_builders.ts @@ -50,9 +50,9 @@ async function getPagingProperties( endpointAppContext: EndpointAppContext ) { const config = await endpointAppContext.config(); - const pagingProperties: { pageSize?: number; pageIndex?: number } = {}; - if (request?.body?.pagingProperties) { - for (const property of request.body.pagingProperties) { + const pagingProperties: { page_size?: number; page_index?: number } = {}; + if (request?.body?.paging_properties) { + for (const property of request.body.paging_properties) { Object.assign( pagingProperties, ...Object.keys(property).map(key => ({ [key]: property[key] })) @@ -60,7 +60,7 @@ async function getPagingProperties( } } return { - pageSize: pagingProperties.pageSize || config.endpointResultListDefaultPageSize, - pageIndex: pagingProperties.pageIndex || config.endpointResultListDefaultFirstPageIndex, + pageSize: pagingProperties.page_size || config.endpointResultListDefaultPageSize, + pageIndex: pagingProperties.page_index || config.endpointResultListDefaultFirstPageIndex, }; } diff --git a/x-pack/test/api_integration/apis/endpoint/endpoints.ts b/x-pack/test/api_integration/apis/endpoint/endpoints.ts index 64df33c28a2db6..95c3678672da30 100644 --- a/x-pack/test/api_integration/apis/endpoint/endpoints.ts +++ b/x-pack/test/api_integration/apis/endpoint/endpoints.ts @@ -21,8 +21,8 @@ export default function({ getService }: FtrProviderContext) { .expect(200); expect(body.total).to.eql(3); expect(body.endpoints.length).to.eql(3); - expect(body.requestPageSize).to.eql(10); - expect(body.requestIndex).to.eql(0); + expect(body.request_page_size).to.eql(10); + expect(body.request_index).to.eql(0); }); it('endpoints api should return page based on params passed.', async () => { @@ -30,20 +30,20 @@ export default function({ getService }: FtrProviderContext) { .post('/api/endpoint/endpoints') .set('kbn-xsrf', 'xxx') .send({ - pagingProperties: [ + paging_properties: [ { - pageSize: 1, + page_size: 1, }, { - pageIndex: 1, + page_index: 1, }, ], }) .expect(200); expect(body.total).to.eql(3); expect(body.endpoints.length).to.eql(1); - expect(body.requestPageSize).to.eql(1); - expect(body.requestIndex).to.eql(1); + expect(body.request_page_size).to.eql(1); + expect(body.request_index).to.eql(1); }); it('endpoints api should return 400 when pagingProperties is below boundaries.', async () => { @@ -51,12 +51,12 @@ export default function({ getService }: FtrProviderContext) { .post('/api/endpoint/endpoints') .set('kbn-xsrf', 'xxx') .send({ - pagingProperties: [ + paging_properties: [ { - pageSize: 0, + page_size: 0, }, { - pageIndex: 1, + page_index: 1, }, ], })