HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/phpmyfaq/admin/ajax.elasticsearch.php
<?php

/**
 * Elasticsearch configuration backend
 *
 * This Source Code Form is subject to the terms of the Mozilla Public License,
 * v. 2.0. If a copy of the MPL was not distributed with this file, You can
 * obtain one at http://mozilla.org/MPL/2.0/.
 *
 * @package   phpMyFAQ
 * @author    Thorsten Rinne <thorsten@phpmyfaq.de>
 * @copyright 2015-2022 phpMyFAQ Team
 * @license   http://www.mozilla.org/MPL/2.0/ Mozilla Public License Version 2.0
 * @link      https://www.phpmyfaq.de
 * @since     2015-12-26
 */

use phpMyFAQ\Faq;
use phpMyFAQ\Filter;
use phpMyFAQ\Helper\HttpHelper;
use phpMyFAQ\Instance\Elasticsearch;

if (!defined('IS_VALID_PHPMYFAQ')) {
    http_response_code(400);
    exit();
}

$ajaxAction = Filter::filterInput(INPUT_GET, 'ajaxaction', FILTER_UNSAFE_RAW);

$esInstance = new Elasticsearch($faqConfig);

$esConfigData = $faqConfig->getElasticsearchConfig();

$http = new HttpHelper();
$http->setContentType('application/json');
$http->addHeader();

$result = [];

switch ($ajaxAction) {
    case 'create':
        if ($esInstance->createIndex()) {
            $result = ['success' => $PMF_LANG['ad_es_create_index_success']];
        }
        break;

    case 'drop':
        if ($esInstance->dropIndex()) {
            $result = ['success' => $PMF_LANG['ad_es_drop_index_success']];
        }
        break;

    case 'import':
        $faq = new Faq($faqConfig);
        $faq->getAllRecords();
        $bulkIndexResult = $esInstance->bulkIndex($faq->faqRecords);
        if ($bulkIndexResult['success']) {
            $result = ['success' => $PMF_LANG['ad_es_create_import_success']];
        }
        break;

    case 'stats':
        $result = $faqConfig->getElasticsearch()->indices()->stats(['index' => $esConfigData['index']]);
        break;
}

$http->sendJsonWithHeaders($result);