# frozen_string_literal: true

class Admin::ElasticsearchController < Admin::ApplicationController
  # POST
  # Scheduling indexing jobs
  def enqueue_index
    if Gitlab::Elastic::Helper.default.index_exists?
      ::Elastic::IndexProjectsService.new.execute

      notice = _('Elasticsearch indexing started')
      queue_link = helpers.link_to(_('(check progress)'), sidekiq_path + '/queues/elastic_full_index')
      flash[:notice] = "#{notice} #{queue_link}".html_safe
    else
      flash[:warning] = _('Please create an index before enabling indexing')
    end

    redirect_to integrations_admin_application_settings_path(anchor: 'js-elasticsearch-settings')
  end

  # POST
  # Trigger reindexing task
  def trigger_reindexing
    if Elastic::ReindexingTask.running?
      flash[:warning] = _('Elasticsearch reindexing is already in progress')
    else
      Elastic::ReindexingTask.create!
      flash[:notice] = _('Elasticsearch reindexing triggered')
    end

    redirect_to integrations_admin_application_settings_path(anchor: 'js-elasticsearch-settings')
  end
end