From b064cb123c546479849248842891a7cef2999677 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 2 Apr 2018 16:57:41 -0700 Subject: [PATCH] [savedObjects] rename bulk_get/find apis to _bulk_get and _find --- .../routes/__tests__/bulk_get.js | 6 ++-- .../saved_objects/routes/__tests__/find.js | 30 +++++-------------- src/server/saved_objects/routes/bulk_get.js | 2 +- src/server/saved_objects/routes/find.js | 10 +------ .../__tests__/saved_objects_client.js | 8 ++--- .../saved_objects/saved_objects_client.js | 4 +-- .../apis/saved_objects/bulk_get.js | 6 ++-- .../apis/saved_objects/find.js | 16 +++++----- 8 files changed, 30 insertions(+), 52 deletions(-) diff --git a/src/server/saved_objects/routes/__tests__/bulk_get.js b/src/server/saved_objects/routes/__tests__/bulk_get.js index c9266ae024f3e0..441acc2bd0c63f 100644 --- a/src/server/saved_objects/routes/__tests__/bulk_get.js +++ b/src/server/saved_objects/routes/__tests__/bulk_get.js @@ -3,7 +3,7 @@ import sinon from 'sinon'; import { createBulkGetRoute } from '../bulk_get'; import { MockServer } from './mock_server'; -describe('POST /api/saved_objects/bulk_get', () => { +describe('POST /api/saved_objects/_bulk_get', () => { const savedObjectsClient = { bulkGet: sinon.stub() }; let server; @@ -29,7 +29,7 @@ describe('POST /api/saved_objects/bulk_get', () => { it('formats successful response', async () => { const request = { method: 'POST', - url: '/api/saved_objects/bulk_get', + url: '/api/saved_objects/_bulk_get', payload: [{ id: 'abc123', type: 'index-pattern' @@ -62,7 +62,7 @@ describe('POST /api/saved_objects/bulk_get', () => { const request = { method: 'POST', - url: '/api/saved_objects/bulk_get', + url: '/api/saved_objects/_bulk_get', payload: docs }; diff --git a/src/server/saved_objects/routes/__tests__/find.js b/src/server/saved_objects/routes/__tests__/find.js index 62312240441040..a4bc9094090312 100644 --- a/src/server/saved_objects/routes/__tests__/find.js +++ b/src/server/saved_objects/routes/__tests__/find.js @@ -3,7 +3,7 @@ import sinon from 'sinon'; import { createFindRoute } from '../find'; import { MockServer } from './mock_server'; -describe('GET /api/saved_objects/{type?}', () => { +describe('GET /api/saved_objects/_find', () => { const savedObjectsClient = { find: sinon.stub() }; let server; @@ -29,7 +29,7 @@ describe('GET /api/saved_objects/{type?}', () => { it('formats successful response', async () => { const request = { method: 'GET', - url: '/api/saved_objects' + url: '/api/saved_objects/_find' }; const clientResponse = { @@ -63,7 +63,7 @@ describe('GET /api/saved_objects/{type?}', () => { it('calls upon savedObjectClient.find with defaults', async () => { const request = { method: 'GET', - url: '/api/saved_objects' + url: '/api/saved_objects/_find' }; await server.inject(request); @@ -77,7 +77,7 @@ describe('GET /api/saved_objects/{type?}', () => { it('accepts the query parameter page/per_page', async () => { const request = { method: 'GET', - url: '/api/saved_objects?per_page=10&page=50' + url: '/api/saved_objects/_find?per_page=10&page=50' }; await server.inject(request); @@ -91,7 +91,7 @@ describe('GET /api/saved_objects/{type?}', () => { it('accepts the query parameter search_fields', async () => { const request = { method: 'GET', - url: '/api/saved_objects?search_fields=title' + url: '/api/saved_objects/_find?search_fields=title' }; await server.inject(request); @@ -105,7 +105,7 @@ describe('GET /api/saved_objects/{type?}', () => { it('accepts the query parameter fields as a string', async () => { const request = { method: 'GET', - url: '/api/saved_objects?fields=title' + url: '/api/saved_objects/_find?fields=title' }; await server.inject(request); @@ -119,7 +119,7 @@ describe('GET /api/saved_objects/{type?}', () => { it('accepts the query parameter fields as an array', async () => { const request = { method: 'GET', - url: '/api/saved_objects?fields=title&fields=description' + url: '/api/saved_objects/_find?fields=title&fields=description' }; await server.inject(request); @@ -135,21 +135,7 @@ describe('GET /api/saved_objects/{type?}', () => { it('accepts the type as a query parameter', async () => { const request = { method: 'GET', - url: '/api/saved_objects?type=index-pattern' - }; - - await server.inject(request); - - expect(savedObjectsClient.find.calledOnce).to.be(true); - - const options = savedObjectsClient.find.getCall(0).args[0]; - expect(options).to.eql({ perPage: 20, page: 1, type: 'index-pattern' }); - }); - - it('accepts the type as a URL parameter', async () => { - const request = { - method: 'GET', - url: '/api/saved_objects/index-pattern' + url: '/api/saved_objects/_find?type=index-pattern' }; await server.inject(request); diff --git a/src/server/saved_objects/routes/bulk_get.js b/src/server/saved_objects/routes/bulk_get.js index 07ff0c216ed251..ebe83b48d3ec0b 100644 --- a/src/server/saved_objects/routes/bulk_get.js +++ b/src/server/saved_objects/routes/bulk_get.js @@ -1,7 +1,7 @@ import Joi from 'joi'; export const createBulkGetRoute = (prereqs) => ({ - path: '/api/saved_objects/bulk_get', + path: '/api/saved_objects/_bulk_get', method: 'POST', config: { pre: [prereqs.getSavedObjectsClient], diff --git a/src/server/saved_objects/routes/find.js b/src/server/saved_objects/routes/find.js index 0ef764b6b64512..0e81d621d017b1 100644 --- a/src/server/saved_objects/routes/find.js +++ b/src/server/saved_objects/routes/find.js @@ -2,14 +2,11 @@ import Joi from 'joi'; import { keysToCamelCaseShallow } from '../../../utils/case_conversion'; export const createFindRoute = (prereqs) => ({ - path: '/api/saved_objects/{type?}', + path: '/api/saved_objects/_find', method: 'GET', config: { pre: [prereqs.getSavedObjectsClient], validate: { - params: Joi.object().keys({ - type: Joi.string() - }).default(), query: Joi.object().keys({ per_page: Joi.number().min(0).default(20), page: Joi.number().min(0).default(1), @@ -21,11 +18,6 @@ export const createFindRoute = (prereqs) => ({ }, handler(request, reply) { const options = keysToCamelCaseShallow(request.query); - - if (request.params.type) { - options.type = request.params.type; - } - reply(request.pre.savedObjectsClient.find(options)); } } diff --git a/src/ui/public/saved_objects/__tests__/saved_objects_client.js b/src/ui/public/saved_objects/__tests__/saved_objects_client.js index 08690e7bd4025e..f4f91e2f8a9dff 100644 --- a/src/ui/public/saved_objects/__tests__/saved_objects_client.js +++ b/src/ui/public/saved_objects/__tests__/saved_objects_client.js @@ -103,7 +103,7 @@ describe('SavedObjectsClient', () => { beforeEach(() => { $http.withArgs({ method: 'POST', - url: `${basePath}/api/saved_objects/bulk_get`, + url: `${basePath}/api/saved_objects/_bulk_get`, data: sinon.match.any }).returns(Promise.resolve({ data: { saved_objects: [doc] } })); }); @@ -308,7 +308,7 @@ describe('SavedObjectsClient', () => { savedObjectsClient.find(body); sinon.assert.calledOnce($http); sinon.assert.calledWithExactly($http, sinon.match({ - url: `${basePath}/api/saved_objects/?type=index-pattern&invalid=true` + url: `${basePath}/api/saved_objects/_find?type=index-pattern&invalid=true` })); }); @@ -318,7 +318,7 @@ describe('SavedObjectsClient', () => { savedObjectsClient.find(body); sinon.assert.calledOnce($http); sinon.assert.calledWithExactly($http, sinon.match({ - url: `${basePath}/api/saved_objects/?fields=title&fields=description` + url: `${basePath}/api/saved_objects/_find?fields=title&fields=description` })); }); @@ -328,7 +328,7 @@ describe('SavedObjectsClient', () => { savedObjectsClient.find(body); sinon.assert.calledOnce($http); sinon.assert.alwaysCalledWith($http, sinon.match({ - url: `${basePath}/api/saved_objects/?from=50&size=10` + url: `${basePath}/api/saved_objects/_find?from=50&size=10` })); }); }); diff --git a/src/ui/public/saved_objects/saved_objects_client.js b/src/ui/public/saved_objects/saved_objects_client.js index 7ceedfd2972176..f8e61add981f42 100644 --- a/src/ui/public/saved_objects/saved_objects_client.js +++ b/src/ui/public/saved_objects/saved_objects_client.js @@ -82,7 +82,7 @@ export class SavedObjectsClient { * @returns {promise} - { savedObjects: [ SavedObject({ id, type, version, attributes }) ]} */ find(options = {}) { - const url = this._getUrl([], keysToSnakeCaseShallow(options)); + const url = this._getUrl(['_find'], keysToSnakeCaseShallow(options)); return this._request('GET', url).then(resp => { resp.saved_objects = resp.saved_objects.map(d => this.createSavedObject(d)); @@ -121,7 +121,7 @@ export class SavedObjectsClient { * ]) */ bulkGet(objects = []) { - const url = this._getUrl(['bulk_get']); + const url = this._getUrl(['_bulk_get']); const filteredObjects = objects.map(obj => _.pick(obj, ['id', 'type'])); return this._request('POST', url, filteredObjects).then(resp => { diff --git a/test/api_integration/apis/saved_objects/bulk_get.js b/test/api_integration/apis/saved_objects/bulk_get.js index a34f81a06abe94..63aed397a363ce 100644 --- a/test/api_integration/apis/saved_objects/bulk_get.js +++ b/test/api_integration/apis/saved_objects/bulk_get.js @@ -20,14 +20,14 @@ export default function ({ getService }) { }, ]; - describe('bulk_get', () => { + describe('_bulk_get', () => { describe('with kibana index', () => { before(() => esArchiver.load('saved_objects/basic')); after(() => esArchiver.unload('saved_objects/basic')); it('should return 200 with individual responses', async () => ( await supertest - .post(`/api/saved_objects/bulk_get`) + .post(`/api/saved_objects/_bulk_get`) .send(BULK_REQUESTS) .expect(200) .then(resp => { @@ -83,7 +83,7 @@ export default function ({ getService }) { it('should return 200 with individual responses', async () => ( await supertest - .post('/api/saved_objects/bulk_get') + .post('/api/saved_objects/_bulk_get') .send(BULK_REQUESTS) .expect(200) .then(resp => { diff --git a/test/api_integration/apis/saved_objects/find.js b/test/api_integration/apis/saved_objects/find.js index b24a6a6fe69aff..5822923363d146 100644 --- a/test/api_integration/apis/saved_objects/find.js +++ b/test/api_integration/apis/saved_objects/find.js @@ -12,7 +12,7 @@ export default function ({ getService }) { it('should return 200 with individual responses', async () => ( await supertest - .get('/api/saved_objects/visualization?fields=title') + .get('/api/saved_objects/_find?type=visualization&fields=title') .expect(200) .then(resp => { expect(resp.body).to.eql({ @@ -36,7 +36,7 @@ export default function ({ getService }) { describe('unknown type', () => { it('should return 200 with empty response', async () => ( await supertest - .get('/api/saved_objects/wigwags') + .get('/api/saved_objects/_find?type=wigwags') .expect(200) .then(resp => { expect(resp.body).to.eql({ @@ -52,7 +52,7 @@ export default function ({ getService }) { describe('page beyond total', () => { it('should return 200 with empty response', async () => ( await supertest - .get('/api/saved_objects/visualization?page=100&per_page=100') + .get('/api/saved_objects/_find?type=visualization&page=100&per_page=100') .expect(200) .then(resp => { expect(resp.body).to.eql({ @@ -68,7 +68,7 @@ export default function ({ getService }) { describe('unknown search field', () => { it('should return 200 with empty response', async () => ( await supertest - .get('/api/saved_objects/wigwags?search_fields=a') + .get('/api/saved_objects/_find?type=wigwags&search_fields=a') .expect(200) .then(resp => { expect(resp.body).to.eql({ @@ -93,7 +93,7 @@ export default function ({ getService }) { it('should return 200 with empty response', async () => ( await supertest - .get('/api/saved_objects/visualization') + .get('/api/saved_objects/_find?type=visualization') .expect(200) .then(resp => { expect(resp.body).to.eql({ @@ -108,7 +108,7 @@ export default function ({ getService }) { describe('unknown type', () => { it('should return 200 with empty response', async () => ( await supertest - .get('/api/saved_objects/wigwags') + .get('/api/saved_objects/_find?type=wigwags') .expect(200) .then(resp => { expect(resp.body).to.eql({ @@ -124,7 +124,7 @@ export default function ({ getService }) { describe('page beyond total', () => { it('should return 200 with empty response', async () => ( await supertest - .get('/api/saved_objects/visualization?page=100&per_page=100') + .get('/api/saved_objects/_find?type=visualization&page=100&per_page=100') .expect(200) .then(resp => { expect(resp.body).to.eql({ @@ -140,7 +140,7 @@ export default function ({ getService }) { describe('unknown search field', () => { it('should return 200 with empty response', async () => ( await supertest - .get('/api/saved_objects/wigwags?search_fields=a') + .get('/api/saved_objects/_find?type=wigwags&search_fields=a') .expect(200) .then(resp => { expect(resp.body).to.eql({