From a0ac2135d70f7923e084d8bf8e410fe5ab002c2d Mon Sep 17 00:00:00 2001 From: Matthew Bargar Date: Tue, 5 Jan 2016 17:09:27 -0500 Subject: [PATCH] Remove endpoints that we don't need for the Add Data UI --- .../create_api_document.js | 8 -- .../create_relationship_object.js | 8 -- .../create_resource_object.js | 12 --- .../api/index_patterns/get_index_pattern.js | 26 ----- .../api/index_patterns/get_index_patterns.js | 36 ------- .../server/routes/api/index_patterns/index.js | 1 - .../routes/api/index_patterns/register_get.js | 44 -------- test/unit/api/index_patterns/_get.js | 102 ------------------ test/unit/api/index_patterns/_post.js | 11 +- test/unit/api/index_patterns/index.js | 2 - 10 files changed, 7 insertions(+), 243 deletions(-) delete mode 100644 src/plugins/kibana/server/lib/api_document_builders/create_api_document.js delete mode 100644 src/plugins/kibana/server/lib/api_document_builders/create_relationship_object.js delete mode 100644 src/plugins/kibana/server/lib/api_document_builders/create_resource_object.js delete mode 100644 src/plugins/kibana/server/routes/api/index_patterns/get_index_pattern.js delete mode 100644 src/plugins/kibana/server/routes/api/index_patterns/get_index_patterns.js delete mode 100644 src/plugins/kibana/server/routes/api/index_patterns/register_get.js delete mode 100644 test/unit/api/index_patterns/_get.js diff --git a/src/plugins/kibana/server/lib/api_document_builders/create_api_document.js b/src/plugins/kibana/server/lib/api_document_builders/create_api_document.js deleted file mode 100644 index b891b90521e2..000000000000 --- a/src/plugins/kibana/server/lib/api_document_builders/create_api_document.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = function createApiDocument(primary, included) { - const doc = {data: primary}; - if (included) { - doc.included = included; - } - - return doc; -}; diff --git a/src/plugins/kibana/server/lib/api_document_builders/create_relationship_object.js b/src/plugins/kibana/server/lib/api_document_builders/create_relationship_object.js deleted file mode 100644 index 0892ae32be89..000000000000 --- a/src/plugins/kibana/server/lib/api_document_builders/create_relationship_object.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = function createRelationshipObject(type, id) { - return { - data: { - type: type, - id: id - } - }; -}; diff --git a/src/plugins/kibana/server/lib/api_document_builders/create_resource_object.js b/src/plugins/kibana/server/lib/api_document_builders/create_resource_object.js deleted file mode 100644 index 21392868df11..000000000000 --- a/src/plugins/kibana/server/lib/api_document_builders/create_resource_object.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = function createResourceObject(type, id, attributes, relationships) { - const resource = { - type: type, - id: id, - attributes: attributes - }; - if (relationships) { - resource.relationships = relationships; - } - - return resource; -}; diff --git a/src/plugins/kibana/server/routes/api/index_patterns/get_index_pattern.js b/src/plugins/kibana/server/routes/api/index_patterns/get_index_pattern.js deleted file mode 100644 index 40b84b6039a5..000000000000 --- a/src/plugins/kibana/server/routes/api/index_patterns/get_index_pattern.js +++ /dev/null @@ -1,26 +0,0 @@ -const { convertToSnakeCase } = require('../../../lib/case_conversion'); -const _ = require('lodash'); -const createApiDocument = require('../../../lib/api_document_builders/create_api_document'); -const createResourceObject = require('../../../lib/api_document_builders/create_resource_object'); - - -module.exports = function getIndexPattern(patternId, boundCallWithRequest) { - const params = { - index: '.kibana', - type: 'index-pattern', - id: patternId - }; - - return boundCallWithRequest('get', params) - .then((result) => { - if (result._source.fields) { - result._source.fields = JSON.parse(result._source.fields); - } - if (result._source.fieldFormatMap) { - result._source.fieldFormatMap = JSON.parse(result._source.fieldFormatMap); - } - - const snakeAttributes = convertToSnakeCase(result._source); - return createApiDocument(createResourceObject('index_patterns', result._id, snakeAttributes)); - }); -}; diff --git a/src/plugins/kibana/server/routes/api/index_patterns/get_index_patterns.js b/src/plugins/kibana/server/routes/api/index_patterns/get_index_patterns.js deleted file mode 100644 index d56ef4e451ce..000000000000 --- a/src/plugins/kibana/server/routes/api/index_patterns/get_index_patterns.js +++ /dev/null @@ -1,36 +0,0 @@ -const { convertToSnakeCase } = require('../../../lib/case_conversion'); -const _ = require('lodash'); -const createApiDocument = require('../../../lib/api_document_builders/create_api_document'); -const createResourceObject = require('../../../lib/api_document_builders/create_resource_object'); -const Promise = require('bluebird'); - -module.exports = function getIndexPatterns(boundCallWithRequest) { - const params = { - index: '.kibana', - type: 'index-pattern', - body: { - query: { - match_all: {} - } - } - }; - - return boundCallWithRequest('search', params) - .then(function parseResults(results) { - const hits = results.hits.hits; - return _.map(hits, (patternHit) => { - if (patternHit._source.fields) { - patternHit._source.fields = JSON.parse(patternHit._source.fields); - } - if (patternHit._source.fieldFormatMap) { - patternHit._source.fieldFormatMap = JSON.parse(patternHit._source.fieldFormatMap); - } - - const snakeAttributes = convertToSnakeCase(patternHit._source); - return createResourceObject('index_patterns', patternHit._id, snakeAttributes); - }); - }) - .then((patterns) => { - return createApiDocument(patterns); - }); -}; diff --git a/src/plugins/kibana/server/routes/api/index_patterns/index.js b/src/plugins/kibana/server/routes/api/index_patterns/index.js index 559da3a2521e..860286ccd719 100644 --- a/src/plugins/kibana/server/routes/api/index_patterns/index.js +++ b/src/plugins/kibana/server/routes/api/index_patterns/index.js @@ -1,5 +1,4 @@ export default function (server) { - require('./register_get')(server); require('./register_post')(server); require('./register_delete')(server); } diff --git a/src/plugins/kibana/server/routes/api/index_patterns/register_get.js b/src/plugins/kibana/server/routes/api/index_patterns/register_get.js deleted file mode 100644 index dc11d039a7fb..000000000000 --- a/src/plugins/kibana/server/routes/api/index_patterns/register_get.js +++ /dev/null @@ -1,44 +0,0 @@ -const _ = require('lodash'); -const handleESError = require('../../../lib/handle_es_error'); -const getIndexPattern = require('./get_index_pattern'); -const getIndexPatterns = require('./get_index_patterns'); - -module.exports = function registerGet(server) { - - server.route({ - path: '/api/kibana/index_patterns', - method: 'GET', - handler: function (req, reply) { - const boundCallWithRequest = _.partial(server.plugins.elasticsearch.callWithRequest, req); - - getIndexPatterns(boundCallWithRequest) - .then( - function (patterns) { - reply(patterns); - }, - function (error) { - reply(handleESError(error)); - } - ); - } - }); - - server.route({ - path: '/api/kibana/index_patterns/{id}', - method: 'GET', - handler: function (req, reply) { - const boundCallWithRequest = _.partial(server.plugins.elasticsearch.callWithRequest, req); - const patternId = req.params.id; - - getIndexPattern(patternId, boundCallWithRequest) - .then( - function (pattern) { - reply(pattern); - }, - function (error) { - reply(handleESError(error)); - } - ); - } - }); -}; diff --git a/test/unit/api/index_patterns/_get.js b/test/unit/api/index_patterns/_get.js deleted file mode 100644 index 6dc312441c94..000000000000 --- a/test/unit/api/index_patterns/_get.js +++ /dev/null @@ -1,102 +0,0 @@ -define(function (require) { - var _ = require('intern/dojo/node!lodash'); - var expect = require('intern/dojo/node!expect.js'); - var createTestData = require('intern/dojo/node!../../../unit/api/index_patterns/data'); - var Promise = require('bluebird'); - var indexPatternSchema = require('intern/dojo/node!../../../../src/plugins/kibana/server/lib/schemas/resources/index_pattern_schema'); - var Joi = require('intern/dojo/node!joi'); - - function expectSnakeCase(object) { - _.forEach(object, function (value, key) { - expect(key).to.be(_.snakeCase(key)); - }); - } - - return function (bdd, scenarioManager, request) { - - bdd.describe('GET index_patterns', function getIndexPatterns() { - - bdd.before(function () { - return scenarioManager.reload('emptyKibana').then(function () { - return Promise.all([ - request.post('/kibana/index_patterns').send(createTestData().indexPattern), - request.post('/kibana/index_patterns').send( - _(createTestData().indexPattern) - .set('data.attributes.title', 'foo') - .set('data.id', 'foo') - .value() - ), - request.post('/kibana/index_patterns').send( - _(createTestData().indexPattern) - .set('data.attributes.title', 'bar*') - .set('data.id', 'bar*') - .value() - ) - ]).then(function () { - return scenarioManager.client.indices.refresh({ - index: '.kibana' - }); - }); - }); - }); - - bdd.after(function () { - return Promise.all([ - request.del('/kibana/index_patterns/logstash-*'), - request.del('/kibana/index_patterns/foo'), - request.del('/kibana/index_patterns/bar*') - ]); - }); - - bdd.it('should return 200 with all patterns in an array', function return200() { - return request.get('/kibana/index_patterns') - .expect(200) - .then(function (res) { - expect(res.body.data).to.be.an('array'); - expect(res.body.data.length).to.be(3); - expect(res.body.included).to.not.be.ok(); - Joi.assert(res.body, indexPatternSchema.post); - }); - }); - - bdd.it('should use snake_case in the response body', function () { - return request.get('/kibana/index_patterns') - .expect(200) - .then(function (res) { - _.forEach(res.body.data, function (resource) { - expectSnakeCase(resource); - expectSnakeCase(resource.attributes); - }); - }); - }); - - bdd.describe('GET index_pattern by ID', function getIndexPatternByID() { - - bdd.it('should return 200 with the valid index pattern requested', function () { - return request.get('/kibana/index_patterns/logstash-*') - .expect(200) - .then(function (res) { - expect(res.body.data.attributes.title).to.be('logstash-*'); - Joi.assert(res.body, indexPatternSchema.post); - }); - }); - - bdd.it('should use snake_case in the response body', function () { - return request.get('/kibana/index_patterns/logstash-*') - .expect(200) - .then(function (res) { - expectSnakeCase(res.body.data); - expectSnakeCase(res.body.data.attributes); - }); - }); - - bdd.it('should return 404 for a non-existent ID', function () { - return request.get('/kibana/index_patterns/thisdoesnotexist').expect(404); - }); - - }); - - }); - }; -}); - diff --git a/test/unit/api/index_patterns/_post.js b/test/unit/api/index_patterns/_post.js index ba26a07873cd..b7aaf5209c20 100644 --- a/test/unit/api/index_patterns/_post.js +++ b/test/unit/api/index_patterns/_post.js @@ -58,12 +58,15 @@ define(function (require) { .send(createTestData().indexPattern) .expect(201) .then(function () { - return request.get('/kibana/index_patterns/logstash-*') - .expect(200) + return scenarioManager.client.get({ + index: '.kibana', + type: 'index-pattern', + id: 'logstash-*' + }) .then(function (res) { - var fields = res.body.data.attributes.fields; + var fields = JSON.parse(res._source.fields); // @timestamp was created with only name and type, all other fields should be set as defaults by API - expect(res.body.data.attributes.title).to.be('logstash-*'); + expect(res._source.title).to.be('logstash-*'); expect(fields[1].name).to.be('@timestamp'); expect(fields[1].type).to.be('date'); expect(fields[1].count).to.be(0); diff --git a/test/unit/api/index_patterns/index.js b/test/unit/api/index_patterns/index.js index 005af478c14b..fce3cc6d563a 100644 --- a/test/unit/api/index_patterns/index.js +++ b/test/unit/api/index_patterns/index.js @@ -7,7 +7,6 @@ define(function (require) { var _ = require('intern/dojo/node!lodash'); var expect = require('intern/dojo/node!expect.js'); var post = require('./_post'); - var get = require('./_get'); var del = require('./_del'); bdd.describe('index_patterns API', function () { @@ -22,7 +21,6 @@ define(function (require) { return scenarioManager.unload('emptyKibana'); }); - get(bdd, scenarioManager, request); post(bdd, scenarioManager, request); del(bdd, scenarioManager, request); });