From ac97af59cc271f6e56b7035c75b3b61da00efd08 Mon Sep 17 00:00:00 2001 From: Aaron Caldwell Date: Mon, 23 Dec 2019 16:41:57 -0700 Subject: [PATCH] Move plugin init back into routes folder. Syntax updates --- .../plugins/file_upload/server/plugin.js | 12 ++--- .../file_upload/server/routes/file_upload.js | 49 ++++++++++++------- 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/x-pack/legacy/plugins/file_upload/server/plugin.js b/x-pack/legacy/plugins/file_upload/server/plugin.js index 7dd7ead8715fd1..d730b8d7ae9c7c 100644 --- a/x-pack/legacy/plugins/file_upload/server/plugin.js +++ b/x-pack/legacy/plugins/file_upload/server/plugin.js @@ -4,21 +4,17 @@ * you may not use this file except in compliance with the Elastic License. */ -import { getImportRouteHandler, importRouteConfig } from './routes/file_upload'; +import { initRoutes } from './routes/file_upload'; import { registerFileUploadUsageCollector } from './telemetry'; +export const IMPORT_ROUTE = '/api/fileupload/import'; + export class FileUploadPlugin { setup(core, plugins, __LEGACY) { const elasticsearchPlugin = __LEGACY.plugins.elasticsearch; const getSavedObjectsRepository = __LEGACY.savedObjects.getSavedObjectsRepository; - // Set up route - __LEGACY.route({ - method: 'POST', - path: '/api/fileupload/import', - handler: getImportRouteHandler(elasticsearchPlugin, getSavedObjectsRepository), - config: importRouteConfig - }); + initRoutes(__LEGACY.route, elasticsearchPlugin, getSavedObjectsRepository); registerFileUploadUsageCollector(plugins.usageCollection, { elasticsearchPlugin, diff --git a/x-pack/legacy/plugins/file_upload/server/routes/file_upload.js b/x-pack/legacy/plugins/file_upload/server/routes/file_upload.js index 5a97a48405d632..ead2b988caa10c 100644 --- a/x-pack/legacy/plugins/file_upload/server/routes/file_upload.js +++ b/x-pack/legacy/plugins/file_upload/server/routes/file_upload.js @@ -10,6 +10,7 @@ import { importDataProvider } from '../models/import_data'; import { updateTelemetry } from '../telemetry/telemetry'; import { MAX_BYTES } from '../../common/constants/file_import'; import Joi from 'joi'; +import { IMPORT_ROUTE } from '../plugin'; function importData({ callWithRequest, id, index, settings, mappings, ingestPipeline, data }) { const { importData: importDataFunc } = importDataProvider(callWithRequest); @@ -37,7 +38,7 @@ export function getImportRouteHandler(elasticsearchPlugin, getSavedObjectsReposi const requestContentWithDefaults = { id, callWithRequest: callWithRequestFactory(elasticsearchPlugin, requestObj), - ...requestObj.payload + ...requestObj.payload, }; return importData(requestContentWithDefaults).catch(wrapError); }; @@ -45,7 +46,7 @@ export function getImportRouteHandler(elasticsearchPlugin, getSavedObjectsReposi export const importRouteConfig = { payload: { - maxBytes: MAX_BYTES + maxBytes: MAX_BYTES, }, validate: { query: Joi.object().keys({ @@ -53,24 +54,38 @@ export const importRouteConfig = { }), payload: Joi.object({ app: Joi.string(), - index: Joi.string().min(1).required(), - data: Joi.array().when( - Joi.ref('$query.id'), { + index: Joi.string() + .min(1) + .required(), + data: Joi.array() + .when(Joi.ref('$query.id'), { is: Joi.exist(), - then: Joi.array().min(1).required() - }).default([]), + then: Joi.array() + .min(1) + .required(), + }) + .default([]), fileType: Joi.string().required(), ingestPipeline: Joi.object().default({}), - settings: Joi.object().when( - Joi.ref('$query.id'), { + settings: Joi.object() + .when(Joi.ref('$query.id'), { is: null, - then: Joi.required() - }).default({}), - mappings: Joi.object().when( - Joi.ref('$query.id'), { - is: null, - then: Joi.required() - }), + then: Joi.required(), + }) + .default({}), + mappings: Joi.object().when(Joi.ref('$query.id'), { + is: null, + then: Joi.required(), + }), }).required(), - } + }, +}; + +export const initRoutes = (route, esPlugin, getSavedObjectsRepository) => { + route({ + method: 'POST', + path: IMPORT_ROUTE, + handler: getImportRouteHandler(esPlugin, getSavedObjectsRepository), + config: importRouteConfig, + }); };