mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Refactor saved query request to not set page size of 10000 (#124187)
* Update saved query service to fix expensive query * Fix types
This commit is contained in:
parent
ac7745ed0a
commit
a8aa3bfbd7
4 changed files with 35 additions and 5 deletions
|
@ -67,9 +67,7 @@ describe('saved query service', () => {
|
|||
});
|
||||
const result = await getAllSavedQueries();
|
||||
expect(http.post).toBeCalled();
|
||||
expect(http.post).toHaveBeenCalledWith('/api/saved_query/_find', {
|
||||
body: '{"perPage":10000}',
|
||||
});
|
||||
expect(http.post).toHaveBeenCalledWith('/api/saved_query/_all');
|
||||
expect(result).toEqual([{ attributes: savedQueryAttributes }]);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -28,8 +28,7 @@ export const createSavedQueryService = (http: HttpStart) => {
|
|||
// we have to tell the saved objects client how many to fetch, otherwise it defaults to fetching 20 per page
|
||||
const getAllSavedQueries = async (): Promise<SavedQuery[]> => {
|
||||
const { savedQueries } = await http.post<{ savedQueries: SavedQuery[] }>(
|
||||
'/api/saved_query/_find',
|
||||
{ body: JSON.stringify({ perPage: 10000 }) }
|
||||
'/api/saved_query/_all'
|
||||
);
|
||||
return savedQueries;
|
||||
};
|
||||
|
|
|
@ -136,6 +136,22 @@ export function registerSavedQueryRouteHandlerContext(context: RequestHandlerCon
|
|||
return { total, savedQueries };
|
||||
};
|
||||
|
||||
const getAllSavedQueries = async () => {
|
||||
const finder = context.core.savedObjects.client.createPointInTimeFinder<SavedQueryAttributes>({
|
||||
type: 'query',
|
||||
perPage: 100,
|
||||
});
|
||||
|
||||
const savedObjects: Array<SavedObject<SavedQueryAttributes>> = [];
|
||||
for await (const response of finder.find()) {
|
||||
savedObjects.push(...(response.saved_objects ?? []));
|
||||
}
|
||||
await finder.close();
|
||||
|
||||
const savedQueries = savedObjects.map(injectReferences);
|
||||
return { total: savedQueries.length, savedQueries };
|
||||
};
|
||||
|
||||
const deleteSavedQuery = (id: string) => {
|
||||
return context.core.savedObjects.client.delete('query', id);
|
||||
};
|
||||
|
@ -146,6 +162,7 @@ export function registerSavedQueryRouteHandlerContext(context: RequestHandlerCon
|
|||
get: getSavedQuery,
|
||||
count: getSavedQueriesCount,
|
||||
find: findSavedQueries,
|
||||
getAll: getAllSavedQueries,
|
||||
delete: deleteSavedQuery,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -123,6 +123,22 @@ export function registerSavedQueryRoutes({ http }: CoreSetup): void {
|
|||
}
|
||||
);
|
||||
|
||||
router.post(
|
||||
{
|
||||
path: `${SAVED_QUERY_PATH}/_all`,
|
||||
validate: {},
|
||||
},
|
||||
async (context, request, response) => {
|
||||
try {
|
||||
const body = await context.savedQuery.getAll();
|
||||
return response.ok({ body });
|
||||
} catch (e) {
|
||||
// TODO: Handle properly
|
||||
return response.customError(e);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
router.delete(
|
||||
{
|
||||
path: `${SAVED_QUERY_PATH}/{id}`,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue