"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addConnector = void 0; var _ = require("../.."); var _error_codes = require("../../../common/types/error_codes"); var _create_connector_document = require("../../utils/create_connector_document"); var _fetch_crawlers = require("../crawler/fetch_crawlers"); var _create_index = require("../indices/create_index"); var _get_default_pipeline = require("../pipelines/get_default_pipeline"); var _delete_connector = require("./delete_connector"); var _fetch_connectors = require("./fetch_connectors"); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ const createConnector = async (document, client, language, deleteExisting) => { const index = document.index_name; const indexExists = await client.asCurrentUser.indices.exists({ index }); if (indexExists) { { throw new Error(_error_codes.ErrorCode.INDEX_ALREADY_EXISTS); } } const connector = await (0, _fetch_connectors.fetchConnectorByIndexName)(client, index); if (connector) { if (deleteExisting) { await (0, _delete_connector.deleteConnectorById)(client, connector.id); } else { throw new Error(_error_codes.ErrorCode.CONNECTOR_DOCUMENT_ALREADY_EXISTS); } } const crawler = await (0, _fetch_crawlers.fetchCrawlerByIndexName)(client, index); if (crawler) { throw new Error(_error_codes.ErrorCode.CRAWLER_ALREADY_EXISTS); } const result = await client.asCurrentUser.index({ document, index: _.CURRENT_CONNECTORS_INDEX, refresh: 'wait_for' }); await (0, _create_index.createIndex)(client, document.index_name, language, false); return { id: result._id, index_name: document.index_name }; }; const addConnector = async (client, input) => { var _input$service_type; const pipeline = await (0, _get_default_pipeline.getDefaultPipeline)(client); const document = (0, _create_connector_document.createConnectorDocument)({ indexName: input.index_name, isNative: input.is_native, language: input.language, pipeline, serviceType: (_input$service_type = input.service_type) !== null && _input$service_type !== void 0 ? _input$service_type : null }); return await createConnector(document, client, input.language, !!input.delete_existing_connector); }; exports.addConnector = addConnector;